检查用户名和数字中的特殊字符以及名字和姓氏表单条目中的特殊字符

时间:2011-07-27 18:29:50

标签: php regex

我有一个简单的注册脚本,我正在练习,我想知道如何检查特殊字符和数字。基本上,对于用户名区域,不允许使用特殊字符。对于名字,姓氏区域,不允许使用特殊字符和数字。这是一个正则表达式操作吗?

3 个答案:

答案 0 :(得分:5)

当我从我喜欢使用ctype函数的表单向php发布信息时,它就是它们的用途。 http://php.net/manual/en/book.ctype.php

所以如果你想要a-zA-Z,你可以

if( !ctype_alpha( $str ) )
   die( 'Invalid characters' );

或者如果你想要a-zA-Z0-9,你可以

if( !ctype_alnum( $str ) )
   die( 'Invalid characters' );

答案 1 :(得分:2)

$stringWithout = preg_replace('/[^a-zA-Z]/', '', $string);
$stringWith = $string;
if ($stringWith == $stringWithout) {
    //string is clean
}

也许这样的事情? 如果你用az替换除了az和AZ之外的所有字符,并比较它们,那么如果它们相同,你就会知道它们在中输入的内容只是像az和AZ这样的字符。

是的,这使用正则表达式来替换字符。

答案 2 :(得分:0)

不要试图拒绝你不想要的东西 - 你总会发现用户比你更有想象力。

只接受您知道可以处理的内容。如果你只想要拉丁字母和空格,请确认这是你唯一能得到的东西:

/^[0-9a-zA-Z ]+$/

如果我错过了一些,请只添加您信任的字符。