当前位置:Gxlcms > PHP教程 > 【正则】怎么写判断提交的用户名中不包含如下特殊字符?求方法

【正则】怎么写判断提交的用户名中不包含如下特殊字符?求方法

时间:2021-07-01 10:21:17 帮助过:8人阅读

【正则】如何写判断提交的用户名中不包含如下特殊字符?求方法
本帖最后由 default7 于 2014-05-25 18:39:45 编辑

对提交的注册用户名 $uname 的需求:
1 要求名称可以由中文 英文混合组成,但是中间不能包含有空格
2 不能包含如下 $arr2 中的特殊字符
3 但是可以包含中文的 左右括号 “(” “)”


function checkReg($uname)
{
/**
//写成简短的
$arr2 = array(
'~', '!', '@', '#', '$', '%', '^', '&', '*', '_', '+', '|', '-', '=', '\\',
'{', '}', '[', ']', ':', ';', '"', '\'', '<', '>', ',', '.', '?', '/', '“', '”',
'’', '‘', '【', '】', '~', '!', '¥', '……', '——', '、', '《', '》', '。',
PHP_EOL, chr(10), chr(13), "\t", chr(32),
);
**/
$arr2 = array(
'~',
'!',
'@',
'#',
'$',
'%',
'^',
'&',
'*',
'_',
'+',
'|',
'-',
'=',
'\\',
'{',
'}',
'[',
']',
':',
';',
'"',
'\'',
'<',
'>',
',',
'.',
'?',
'/',
'“',
'”',
'’',
'‘',
'【',
'】',
'~',
'!',
'¥',
'……',
'——',
'、',
'《',
'》',
'。',
PHP_EOL,
chr(10),
chr(13), //\r\n
"\t",
chr(32),
);


foreach ($arr2 as $k) {
//我之前用 preg_match 结果有乱码,全乱了。后来用strpos (default7#zbphp.com)
if (strpos($uname, $k) !== false) {
$tips = "注册名中不能含有空格、点、逗号等特殊字符!";

return array(false, $tips);
}
}

return array(true, 'ok');
}



------解决方案--------------------
if($s == str_replace($arr2, '', $s)) {
//不包含特殊字符
}else{
//包含特殊字符
}

人气教程排行