繁体   English   中英

在正则表达式中添加(?i)会导致JavaScript“无效的正则表达式组”出现错误

[英]Adding a (?i) in the regex causes an error in javascript “invalid regex group”

我有一个正则表达式

/^(?!.*qwerty)[0-9a-zA-Z]*$/   

但是每次我在问号前添加(?i)都会在javascript“ invalid regex group”中导致错误

有人可以告诉我为什么吗?

在仅用于修饰符的地方添加i怎么了? JS不允许将修饰符放置在正则表达式中。

/^(?!.*qwerty)[0-9A-Z]*$/i

请参阅Regex修饰符-在rexegg.com上将其打开

内联修饰符(?i)
在.NET,PCRE(C,PHP,R…),Perl,Python,Java和Ruby( 不包括 JavaScript )中,可以使用内联修饰符(?i) ,例如在(?i)cat

您可以使用同时匹配大写和小写变体的字符类:

^(?!.*[Qq][Ww][Ee][Rr][Tt][Yy])[0-9a-zA-Z]*$ 

如果您负担得起第三方XRegExp ,则可以使用内联修饰符

模式修饰符使用语法(?imnsuxA) ,其中imnsuxAXRegExp标志的任意组合,但gy除外。 模式修饰符提供了启用指定标志的另一种方法。

这是一个演示:

 var regex = XRegExp('(?i)^(?!.*qwerty)[0-9a-zA-Z]*$'); document.body.innerHTML = regex.test("Text QwErty"); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/xregexp/2.0.0/xregexp-all-min.js"></script> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM