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

你的正则表达式不会在 PHP 和 JavaScript 之间改变。在 JavaScript 中它是一个对象,而在 PHP 中它是一个字符串,但模式仍然相同:

/^[a-z0-9]+$/i

where^代表字符串的开头,$代表字符串的结尾。接下来,a-z匹配任何字母,并0-9匹配任何数字。+表示前一个模式可以重复一次或多次的状态。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

在 PHP 中实际上有一个更简单的测试方法,使用Ctype 函数,特别是ctype_alnum函数,它将返回一个布尔值,说明给定字符串中的所有字符是否都是字母数字:

ctype_alnum("Foo123"); // true
ctype_alnum("Foo!23"); // false
于 2012-12-12T16:17:34.163 回答
0
if(preg_match('~[^a-z0-9 ]~i', $foo)) {
//DO SOMETHING HERE;
}
于 2012-12-12T16:18:14.857 回答