preg_match PHP验证用户名

时间:2011-12-21 15:58:05

标签: php regex validation preg-match

如何使用php验证用户名

我的规则是:

用户名只能包含字母,数字和1个下划线。

这是我目前的preg_match

preg_match('/^[a-zA-Z0-9][_]{1}[a-zA-Z0-9]+$/',$_POST['uname'])

1 个答案:

答案 0 :(得分:2)

这应该这样做:

/^[a-zA-Z0-9]*_?[a-zA-Z0-9]*$/

请记住,单个项目的字符类是多余的。单独写原子。 {1}是另一个严重冗余的量词。

/[_]{1}/

相同
/_/

编辑:

基于新的约束和克里斯的有用评论,这似乎是一个更好的正则表达式:

/^[a-zA-Z0-9]+_?[a-zA-Z0-9]+$/D

它匹配至少两个字符的用户名,不是以可选的下划线结尾或开头,最后没有换行符。