ホームページ >バックエンド開発 >PHPチュートリアル >[定期] 送信されたユーザー名に次の特殊文字が含まれていないかどうかを確認するにはどうすればよいですか?方法を見つける
对提交的注册用户名 $uname 的需求:
1 要求名称可以由中文 英文混合组成,但是中间不能包含有空格
2 不能包含如下 $arr2 中的特殊字符
3 但是可以包含中文的 左右括号 “(” “)”
<?phpfunction 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(strlen($s) == strlen(str_replace($arr2, '', $s))) { //不包含特殊字符}else{ //包含特殊字符}
if($s == str_replace($arr2, '', $s)) { //不包含特殊字符}else{ //包含特殊字符}