RegEx验证用户名

时间:2013-03-11 13:20:22

标签: php regex

我在正则表达方面不是很好,似乎无法理解它们。

我正在寻找一个正则表达式,它将匹配并允许用户名的后续字符串,具有以下条件:

  • 用户名可以:以数字或字母开头
  • 用户名可以包含特殊字符:点,短划线,下划线
  • 用户名必须在此范围内:从3个字符到32个字符。
  • 用户名中的字母数字字符可以是:小写大写
  • 不能包含空格

几乎与Twitter和Facebook用户名模式类似。

请帮帮我。谢谢。

FWI:我试过这个:/^(?=.{1,15}$)[a-zA-Z][a-zA-Z0-9]*(?: [a-zA-Z0-9]+)*$/ - 这不符合我的条件。

4 个答案:

答案 0 :(得分:5)

试试这个

^[a-zA-Z0-9][a-zA-Z0-9\._-]{2,31}$

这导致php代码

if (preg_match('~^[a-zA-Z0-9][a-zA-Z0-9\._-]{2,31}$~', $username) {
    //do something
}

答案 1 :(得分:2)

以数字或字母开头

[a-zA-Z0-9]

可以包含上面的点,短划线和下划线

[a-zA-Z0-9._-]

和所有人一起

[a-zA-Z0-9][a-zA-Z0-9._-]{2, 31}

答案 2 :(得分:2)

试试这个,这在每个注册表格中都适合我

//username Validation
var usernameRegex = /^[a-zA-Z0-9\s\[\]\.\-#']*$/i;
var username=document.getElementById('username');
if(username.value==""){
document.getElementById('lblusername').innerHTML="Username Required!";
username.focus();
return false;
}   
else if(usernameRegex.test(username.value)== false) 
{
document.getElementById('lblusername').innerHTML="Allow Alphanumeric Only! (E.g Demo123)";
username.focus();
return false;
}
else
{
document.getElementById('lblusername').innerHTML="";
}   

答案 3 :(得分:1)

试试这个:

^[0-9a-zA-Z][0-9a-zA-Z\-\._]{2,31}$