首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript regex“无效组”?

Javascript regex“无效组”?
EN

Stack Overflow用户
提问于 2016-06-09 18:52:25
回答 2查看 1.6K关注 0票数 2

我试图让javascript用户名验证regex。

代码语言:javascript
复制
' ^(?=.{4,16}$)(?![_.])(?!.*[_.]{2})[a-zA-Z0-9._]+(?<![_.])$
'  └─────┬────┘└───┬──┘└─────┬─────┘└─────┬─────┘ └───┬───┘
'        │         │         │            │           no _ or . at the end
'        │         │         │            │
'        │         │         │            allowed characters
'        │         │         │
'        │         │         no __ or _. or ._ or .. inside
'        │         │
'        │         no _ or . at the beginning
'        │
'        username is 4-16 characters long

当我在钛应用程序上使用它时,我得到了这个错误

代码语言:javascript
复制
[ERROR] :  Error generating AST for "***register.js"
[ERROR] :  Invalid regular expression: /^(?=.{4,16}$)(?![_.])(?!.*[_.]{2})[a-zA-Z0-9._]+(?<![_.])$/: Invalid group
[ERROR] :  Alloy compiler failed

我的代码:

代码语言:javascript
复制
var regex = /^(?=.{4,16}$)(?![_.])(?!.*[_.]{2})[a-zA-Z0-9._]+(?<![_.])$/;

        if ( !regex.test(e.value)) 
         {
            inputs.Username.borderColor = 'red';
            inputs.Username.backgroundColor = '#edcaca';
            return false;
         }

知道为什么它的错误无效组吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-09 18:57:54

这可能对你有用:

代码语言:javascript
复制
/^(?=.{4,16}$)(?![_.])(?!.*[_.]{2})[a-z0-9._]+[a-z0-9]$/i

或者避开大多数的看头:

代码语言:javascript
复制
/^(?!.*[_.]{2})[a-z0-9][a-z0-9._]{2,14}[a-z0-9]$/i

在网上试试

问题是,查找后(正(?<=...)和负(?<!...))不支持JavaScript。

票数 6
EN

Stack Overflow用户

发布于 2016-06-09 18:56:08

JavaScript的regex引擎不支持回头看(?<![_.])

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

https://stackoverflow.com/questions/37734009

复制
相关文章

相似问题

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