首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >量化组内匹配

量化组内匹配
EN

Stack Overflow用户
提问于 2012-02-20 21:03:41
回答 2查看 89关注 0票数 3

我正在尝试使用regex用户名检查器进行注册,但是我遇到了一些问题

这是我写的表达

代码语言:javascript
复制
^[a-zA-Z]{1}([a-zA-Z0-9]*[\._ ]?){2,10}[A-za-z\d]$

问题是它没有限制句号、下划线和空格,而且用户名应该在4-12个字符之间。

我试着允许:第一个字符必须以allow开头,最后一个字符必须是字母数字,所有介于两者之间的字符必须是2-10个字母数字字符,并且只允许一个空格、句号和下划线。

例如:

undescores)

  • A_NON
  • A___N无效(3
  • “A.Non”无效,空格在末尾。
  • A.non是有效的
  • A N.oN是有效

F 212

如能提供任何帮助,将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-20 21:16:03

最好的方法是使用前瞻性断言来组合两个不相关的需求。基本上,您需要确保这个regex确实匹配:

代码语言:javascript
复制
^[a-zA-Z][a-zA-Z0-9._ ]{2,10}[a-zA-Z0-9]$

而这个不符合:

代码语言:javascript
复制
([._ ]).*\1

您可以使用负面的前瞻性断言将它们组合起来。

代码语言:javascript
复制
^(?!.*([._ ]).*\1)[a-zA-Z][a-zA-Z0-9._ ]{2,10}[a-zA-Z0-9]$
票数 2
EN

Stack Overflow用户

发布于 2012-02-20 21:13:46

尝尝这个。

代码语言:javascript
复制
^(?=.{4,12}$)[A-Za-z][A-Za-z0-9]{0,10}[._ ][A-Za-z0-9]{1,10}$

插入符号后的父级表达式检查长度(如果您的regex方言提供前瞻性断言)或单独检查代码中的字符串长度。

编辑:允许数字作为最后一个字符。请注意,这需要一个空格、点或下划线;如果使其可选,则相应地调整数字。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9368373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档