我有一个简单的注册脚本,我正在练习,我想知道如何检查特殊字符和数字。基本上,对于用户名区域,不允许使用特殊字符。对于名字、姓氏区域,不允许使用特殊字符和数字。这是一个正则表达式操作吗?
当我从表单发布信息到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 ]+$/
如果我遗漏了一些字符,只添加你信任的字符。