javascript - JS正则表达式匹配具有特定特殊字符且没有连续空格的用户名

标签 javascript html regex pattern-matching spaces

我对这个 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/

相关文章:

html - 是否可以设置 html5 音频标签的样式?

html - 为什么我的 ASP Core MVC Razor 表单显示的输入框没有边距?

在 re.sub 中使用变量时出现 Python TypeError

ruby - 正则表达式选择id

javascript - 设置内容类型 : in angular js post request

javascript - angularjs 单元测试何时使用 $rootScope.$new()

javascript - 数据更改时刷新 ng-repeat 中的复选框

javascript - 如何将任意 json 中的所有值(仅值)连接成 Javascript 中的单个字符串

javascript - 使用正则表达式使用纯 js 或 jquery 从长字符串中解析有效的 url

html - 移动:滚动后 ul 内容消失