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


check for special characters in user name and numbers and special characters in first name, and last name form entry

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

当我从表单发布信息到php时,我喜欢使用ctype函数,这就是它们的作用。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' );
$stringWithout = preg_replace('/[^a-zA-Z]/', '', $string);
$stringWith = $string;
if ($stringWith == $stringWithout) {
    //string is clean
}

也许是这样的?如果您将除a-z和a-z以外的所有字符替换为空,并将它们进行比较,那么如果它们相同,则您将知道在中键入的仅为a-z和a-z之类的字符。

是的,它使用一个正则表达式来替换字符

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

只接受你知道你能处理的。如果您只想要拉丁字母和空格,请验证这是您唯一想要的东西,例如:

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

如果我遗漏了一些字符,只添加你信任的字符。