私は自分のウェブサイトのユーザー登録部分を書いています。次のような単純な正規表現があります。
if(preg_match("/^[a-z0-9_]{3,15}$/", $username)){
// OK...
}else{
echo "error";
exit();
}
___
ユーザーに「 」または「 」のようなユーザー名を許可したくありませんx________y
。これは、二重のアンダースコアを置き換えるために作成した関数です。
function replace_repeated_underScores($string){
$final_str = '';
$str_len = strlen($string);
$prev_char = '';
for($i = 0; $i < $str_len; $i++){
if($i > 1){
$prev_char = $string[$i - 1];
}
$this_char = $string[$i];
if($prev_char == '_' && $this_char == '_'){
}else{
$final_str .= $this_char;
}
}
return $final_str;
}
それは問題なく動作しますが、これを別の関数ではなく正規表現でも確認できるのではないかと思います。
助けていただければ幸いです。