0

我如何将其更改为非字母数字?(在谷歌上我看到所有想要字母数字的人)

代码 :

         /* Check if username is not alphanumeric */
     else if(!preg_match("/^[a-zA-Z0-9,]+$/", $subuser)){
        $form->setError($field, "* Username not alphanumeric");
     }

它一直在说

* Username not alphanumeric

这是我和eregi一起使用的旧部分

         /* Check if username is not alphanumeric */
     else if(!eregi("^([0-9a-z])+$", $subuser)){
        $form->setError($field, "* Username not alphanumeric");
     }
4

3 回答 3

3

使用正则表达式的简单方法是^[]字符类中使用 a 来否定它:

if(preg_match('/[^a-z0-9]/i', $subuser)) {
    //contains at least one non alpha-num character.
}

然而,PHP 也为此提供了一个内置函数:ctype_alnum()

if(!ctype_alnum($subuser)) { .... }
于 2013-07-25T12:30:04.563 回答
2

You can use the special character class identifier :alnum: together with the , and negate it with ^:

if(!preg_match("/[^:alnum:,]+$/", $subuser))
于 2013-07-25T12:31:30.683 回答
0

更改并"/^[a-zA-Z0-9,]+$/"尝试"/[^a-zA-Z0-9,]+/"

于 2013-07-25T12:33:03.310 回答