1
$foo = "username122";

pre_match('Contain only aplhanumeric string', $foo){
   return true;
}

$foo特殊文字ではなく英数字のみを(=\*-[含む ( など)

4

4 に答える 4

4

ctype_alnum()関数はあなたをダンディにします:)

于 2012-12-12T16:15:41.893 に答える
3

最初から最後までのみ英数字に一致する正規表現を使用します。

/^[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
}
于 2012-12-12T16:13:21.970 に答える
0
if(preg_match('~[^a-z0-9 ]~i', $foo)) {
//DO SOMETHING HERE;
}
于 2012-12-12T16:18:14.857 に答える
0

このようなものの正規表現は、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
于 2012-12-12T16:17:34.163 に答える