javascript - 为什么量词不起作用

标签 javascript regex

<分区>

我有以下正则表达式:

^(?:[\w]+?\/)?[\w]+?@[\w]+?\.[\w]+?$

现在我需要将整个字符串长度限制为 25 个字符: 我尝试了以下方法:

^((?:[\w]+?\/)?[\w]+?@[\w]+?\.[\w]+?){0,25}$

但它仍然匹配超过 25 个字符的正则表达式,为什么?

最佳答案

量词应用于它前面的标记。在您的情况下,这是一个完整的组,并且该组可以匹配的不仅仅是一个字符。

使用 positive lookahead assertion 分别进行长度检查:

^(?=.{0,25}$)(?:\w+\/)?\w+@\w+\.\w+$

如您所见,您的正则表达式也可以大大简化(不需要惰性量词和字符类)。

关于javascript - 为什么量词不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35770556/

相关文章:

javascript - 如何在 Scroll 上使用 CSS 和 JS 创建插图

javascript - 正则表达式:通过一次匹配捕获多个可选组

javascript - 我如何给div平等的位置权力

javascript - 将字符串拆分为数组然后在 1 行中获取元素

javascript - 使用 Javascript Window.open

javascript - 如何从外部 JavaScript 文件访问 HTML 文档中的变量

javascript - 如何解码javascript正则表达式/[^[{]*[a-zA-Z0-9\_]/g

python - 验证 ModelForm 的最佳方法

regex - JSF 2.0 validateRegex 带有自己的验证器消息

java - 正则表达式在 Java 中转义 Json 值中的双引号