我正在与我的正则表达式搏斗.我想只允许用户名中的字母和数字以及一个点,并且我想到的是2到20个字符
[0-9A-ZA-Z] {2,20}
但是21个字符也没关系,这不是我想要的
我建议你做两个检查 - 一个用于长度,一个用于内容,因为你可能只想在名称中有一个点,而不是任意数量的点.我会假设名称喜欢username并且user.name是唯一允许的格式.
这应该得到内容(但也允许下划线):
^\w+(\.\w+)?$
Run Code Online (Sandbox Code Playgroud)
如果您不想要下划线,那么您将使用[0-9a-zA-Z]+代替\w+.为了解释,它将匹配由一个或多个单词字符组成的任何字符串,后跟正好是0或1的点后跟一个或多个单词字符.它还必须匹配字符串的开头和结尾,即字符串中不允许其他字符.
然后你只需要通过简单的长度检查来获得长度.
| 归档时间: |
|
| 查看次数: |
12672 次 |
| 最近记录: |