如何在字符串中找到字母数字

时间:2012-12-12 16:10:53

标签: php javascript regex

$foo = "username122";

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

$foo仅包含字母数字而非特殊字符(=\*-[(等)

4 个答案:

答案 0 :(得分:4)

ctype_alnum()函数会让你花哨:)

答案 1 :(得分: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
}

答案 2 :(得分:0)

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

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

其中^表示字符串的开头,$表示字符串的结尾。接下来,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

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

ctype_alnum("Foo123"); // true
ctype_alnum("Foo!23"); // false

答案 3 :(得分:0)

if(preg_match('~[^a-z0-9 ]~i', $foo)) {
//DO SOMETHING HERE;
}