基本都可以,但这个不行,用户名换成张三就OK,为什么?新手的痛苦,谢谢。
<?php
$_string='张思';
$_char_pattern='/[<>\'\"\\ ]/';
if(preg_match($_char_pattern,$_string)){
echo '用户名不得包含敏感字符!';
}else{
echo '没有敏感字符';
}
?>
补充1:
对回答的回复:
空白的地方是2个空格,一个半角,一个全角
\s使用这个可以通过,单独使用半角空格也可以OK,加上全角过滤张思就过不去。
我刚学,这点还真心不懂;
谢谢回答,但愿能解决。
补充2:
JS验证可以通过张思!
if(/[<>\'\"\ ]/.test(fm.username.value)){
alert("用户名包含非法字符");
fm.username.focus();
return false;
}
第一次发问,补充一下,张三李四王五都可以,就这个结果总是:用户名不得包含敏感字符?没包含啊!
补充2,“胀死”也不行,但“长死”可以
你的那空白是什么?换成\s试试看。
如果是中文全角的空格,试试看\xc2\xa0
$_char_pattern='/[<>\'\"\\\s(\xc2\xa0)]/';
补充2,“胀死”也不行,但“长死”可以