我对这个 reg ex 世界还很陌生。完成有关 Regex 的小任务。 在发布新问题之前,我已经通过了一些能够理解但无法解决我的问题的答案 感谢您对此提供的帮助。
我的场景是:
根据以下标准验证用户名
1- 第一个字符必须是 a-zA-Z0-9_@(两个特殊字符 (_@) 或字母数字)
2 - 其余可以是任何字母、任何数字和 -@_(三个特殊字符和字母数字)。
3 - 但单词之间没有连续空格。
4- 最大长度应为 30 个字符
我的用户名可能包含由一个空格分隔的多个单词..对于第一个单词,只允许使用 _@ 字母数字,对于第二个单词,它可以包含 _-@aphanumeric
需要忽略用户名末尾的空格
示例是:@test、_test、@test123、123@、test_-@、test -test1、@test -_@test 等...
感谢您对此的帮助..
谢谢 阿琼
最佳答案
给你:
^(?!.*[ ]{2,})[\w@][-@\w]{0,29}$
查看working on regex101.com .
条件 3 是模棱两可的,因为您无论如何都不允许使用空格。 \w
是[a-zA-Z_]
的简写,(?!...)
称为neg。展望。
分割如下:
^ # start of string
(?!.*[ ]{2,}) # neg. lookahead, no consecutive spaces
[\w@] # condition 1
[-@\w]{0,29} # condition 2 and 4
$ # end of string
关于javascript - JS正则表达式匹配具有特定特殊字符且没有连续空格的用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43018300/