我正在尝试使用正则表达式验证PHP中的用户名,我提交的所有内容都未通过检查。我仍然是超级新人。
if ( !preg_match('/^[A-Za-z]{1}[A-Za-z0-9]{5-31}$/', $joinUser) )
规则:
我一直在与this online tester和this one too合作。我读过this thread和this thread,但是他们无法理解,因为它们似乎比我的更复杂(向前看?和各种特殊字符)。
在阅读了我链接的第一个帖子之后,似乎我是一个不太明白“字母”如何影响被认为是可接受的,即外国字符,重音字符等的人之一。我真的只是看英文字母(这是ASCII吗?)和数字0-9。
感谢。
答案 0 :(得分:30)
唯一的问题是,你拼错了最后一个量词。
{5-31}
必须为{5,31}
所以你的正则表达式将是
if ( !preg_match('/^[A-Za-z][A-Za-z0-9]{5,31}$/', $joinUser) )
你可以跳过{1}
,但不会受到伤害。
答案 1 :(得分:4)
显然你需要改变的是5-31的5,31。
工作示例:
if (preg_match('/^[A-Za-z]{1}[A-Za-z0-9]{5,31}$/', "moo123"))
{
echo 'succeeded';
}
else
{
echo 'failed';
}
答案 2 :(得分:2)
试试这个:
if ( !preg_match('/^[A-Za-z][A-Za-z0-9]{5,31}$/', $joinUser) )