首页 > 后端开发 > php教程 > 【正则】如何写判断提交的用户名中不包含如下特殊字符?求方法

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

WBOY
发布: 2016-06-23 13:56:16
原创
1761 人浏览过

对提交的注册用户名 $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{ //包含特殊字符}
登录后复制

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板