什么是正则表达式,只允许字母,没有空格或数字,长度为20个字符?
可接受的用户名的一些示例:
ask1kew supacool sec1entertainment ThatPerson1 Alexking
一些不可接受的用户名示例:
No_problem1 a_a_sidkd Thenamethatismorethen20characterslong
如果您将自己限制为ASCII,这应该有效:
/\A[a-z0-9]{,20}\z/i
这也会匹配一个空字符串,所以你可能想要添加一个下限(在这个例子中为5):
/\A[a-z0-9]{5,20}\z/i
如果你想冒险并允许使用非ASCII字母而你正在使用Ruby 1.9那么你可以使用它:
/\A\p{Alnum}{5,20}\z/ /\A\p{Alnum}{,20}\z/ # If no lower limit on length is desired.
^[a-zA-Z0-9]{1,20}$
{1,20} 是 {min, max} 所以您可以将其设置为 {5,20} ,将其限制为最少5个字符,最多为20个字符 .
{1,20}
{min, max}
{5,20}
2 回答
如果您将自己限制为ASCII,这应该有效:
这也会匹配一个空字符串,所以你可能想要添加一个下限(在这个例子中为5):
如果你想冒险并允许使用非ASCII字母而你正在使用Ruby 1.9那么你可以使用它:
^[a-zA-Z0-9]{1,20}$
{1,20}
是{min, max}
所以您可以将其设置为{5,20}
,将其限制为最少5个字符,最多为20个字符 .