早上好,
我想检查用户选择的用户名是否有效。 可悲的是,我找不到任何适合我需要的正则表达式,而且我自己写这篇文章并没有给我带来太大的影响。 我希望我能在这里得到一些帮助。 :)
规则:
3-26位数
A-Z
A-Z
0-9
一个点允许(。)
直到现在我有:
if ( !preg_match('/^[A-Za-z][A-Za-z0-9]{3,26}$/', $joinUser) )
但这个点让我有问题。
感谢您的帮助!
答案 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';