如何使用php验证用户名
我的规则是:
用户名只能包含字母,数字和1个下划线。
这是我目前的preg_match
preg_match('/^[a-zA-Z0-9][_]{1}[a-zA-Z0-9]+$/',$_POST['uname'])
答案 0 :(得分:2)
这应该这样做:
/^[a-zA-Z0-9]*_?[a-zA-Z0-9]*$/
请记住,单个项目的字符类是多余的。单独写原子。 {1}
是另一个严重冗余的量词。
/[_]{1}/
与
相同/_/
编辑:
基于新的约束和克里斯的有用评论,这似乎是一个更好的正则表达式:
/^[a-zA-Z0-9]+_?[a-zA-Z0-9]+$/D
它匹配至少两个字符的用户名,不是以可选的下划线结尾或开头,最后没有换行符。