$foo = "username122";
pre_match('Contain only aplhanumeric string', $foo){
return true;
}
$foo
特殊文字ではなく英数字のみを(=\*-[
含む ( など)
$foo = "username122";
pre_match('Contain only aplhanumeric string', $foo){
return true;
}
$foo
特殊文字ではなく英数字のみを(=\*-[
含む ( など)
ctype_alnum()
関数はあなたをダンディにします:)
最初から最後までのみ英数字に一致する正規表現を使用します。
/^[A-Za-z0-9]*$/
例えば:
$testRegex = "/^[A-Za-z0-9]*$/";
$testString = "abc123";
if (preg_match($testRegex, $testString)) {
// yes, the string is entirely alphanumeric
} else {
// no, the string is not entirely alphanumeric
}
if(preg_match('~[^a-z0-9 ]~i', $foo)) {
//DO SOMETHING HERE;
}
このようなものの正規表現は、PHP と JavaScript の間で変わりません。JavaScript ではオブジェクトですが、PHP では文字列ですが、パターンは同じです。
/^[a-z0-9]+$/i
Where^
は文字列の開始を$
表し、文字列の末尾を表します。次に、a-z
任意の文字に0-9
一致し、任意の数字に一致します。は+
、前のパターンが 1 回以上繰り返される可能性があることを示しています。i
修飾子により、部分のa-z
大文字と小文字が区別されなくなり、大文字と小文字が一致します。
JavaScript でのテスト:
/^[a-z0-9]+$/i.test("Foo123"); // true
PHP でのテスト:
preg_match("/^[a-z0-9]+$/i", "Foo123"); // 1
PHP では、 などの POSIX 文字クラスを使用するオプションがあります:alnum:
。これは JavaScript では機能しないことに注意してください。
preg_match("/^[[:alnum:]]+$/i", "Foo123"); // 1
実際には、Ctype 関数、特に関数を使用して、PHP でテストするためのはるかに簡単な方法があります。このctype_alnum
関数は、指定された文字列のすべての文字が英数字かどうかを示すブール値を返します。
ctype_alnum("Foo123"); // true
ctype_alnum("Foo!23"); // false