【问题标题】:What does it means when put a positive lookahead assertion in the front在前面放一个积极的前瞻断言是什么意思
【发布时间】:2014-07-26 13:08:09
【问题描述】:

我知道/box(?=.*\d)/的意思是box只有在将来有数字的时候才匹配,但是/(?=.*\d)box/是什么意思呢?

我用字符串boxboxOtherTextbox3box 进行了测试,发现这两个正则表达式匹配相同的字符。我感到很困惑。

我在阅读文章时发现了这个:JavaScript: Password Validation using regular expressions and HTML5

作者使用/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,}$/保证密码至少包含一位数字;一个小写;一个大写;总共6个字符。

【问题讨论】:

    标签: javascript regex lookahead


    【解决方案1】:

    /box(?=.*\d)/ 匹配第一个“框”,然后尝试断言它是正确的(这是因为“3”而为真)。

    /(?=.*\d)box/ 尝试断言字符串中某处包含一个数字(由于“3”而为真),然后匹配第一个“框”。

    前瞻不消耗字符,它只断言模式存在(或不存在)。因此,在这两种情况下,两个正则表达式的“盒子”模式都应用于(并在)字符串的开头。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-05
      • 2012-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多