正则表达式检查用户名是否有效

时间:2015-05-30 04:05:52

标签: php regex

早上好,

我想检查用户选择的用户名是否有效。 可悲的是,我找不到任何适合我需要的正则表达式,而且我自己写这篇文章并没有给我带来太大的影响。 我希望我能在这里得到一些帮助。 :)

  

规则:
  3-26位数
  A-Z
  A-Z
  0-9
  一个点允许(。)

直到现在我有:

if ( !preg_match('/^[A-Za-z][A-Za-z0-9]{3,26}$/', $joinUser) ) 

但这个点让我有问题。

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

尝试使用负面预测的方法:

'/^(?!.*[.].*[.])[A-Za-z0-9.]{3,26}$/'

'/^(?!.*\..*\.)[A-Za-z0-9.]{3,26}$/' 

使用转义而不是字符类。

否定前瞻将导致此正则表达式不匹配具有两个或更多句点的内容。

答案 1 :(得分:0)

看看吧!它会匹配单个句点或下划线,而不是多个,而不是两个。希望这有帮助!

if(preg_match('/^(?=.{3,26}$)[a-z0-9]+(?:[._][a-z0-9]+)?$/i', $username)) 
    echo 'Match';
echo 'Not Match';