php判断用户名存在特殊字符,【正则】如何写判断提交的用户名中不包含如下特殊字符?求方法...

对提交的注册用户名 $uname 的需求:

1 要求名称可以由中文 英文混合组成,但是中间不能包含有空格

2 不能包含如下 $arr2 中的特殊字符

3 但是可以包含中文的 左右括号 “(” “)”

', ',', '.', '?', '/', '“', '”','’', '‘', '【', '】', '~', '!', '¥', '……', '??', '、', '《', '》', '。',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{ //包含特殊字符}

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值