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

これはエレギと一緒に持っていたときの古い部分でした

         /* 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

特殊文字クラス識別子 :alnum:を と一緒に使用し、,で否定できます^

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 に答える