什么是只允许字母(不允许空格或数字,长度为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.