【问题标题】:Regular Expression is working for php not for JavaScript正则表达式适用于 php 而不是 JavaScript
【发布时间】:2015-08-06 04:22:09
【问题描述】:

这是我的表情:

^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])[[:graph:]]{6,25}$

我在http://regex101.com/上测试过

Its working for string DeepakManwal1 when there is php selected but does not work when javascript is selected.不知道具体是什么原因。

我想将此表达式用于password 验证,其中至少应包含一个大写字母和一个数字字符。

这里是小提琴http://jsfiddle.net/j7rmj44h/

【问题讨论】:

    标签: regex


    【解决方案1】:

    这是因为 POSIX 类 [:graph:] — 您可以将其更改为等效的 [\x21-\x7E]。此外,您需要根据您的小提琴删除模式周围的引号。

    var re = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])[\x21-\x7E]{6,25}$/
    

    Fiddle

    【讨论】:

      【解决方案2】:

      AFAIK,javascript 不理解 POSIX。

      试一试:

       ^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])\S{6,25}$
      

      【讨论】:

        【解决方案3】:

        不同的正则表达式引擎具有不同的功能。只有最简单的正则表达式可以跨实现共享。

        如果我没记错的话[:graph:] JS 不支持字符类的规范。

        【讨论】:

          猜你喜欢
          • 2016-06-04
          • 1970-01-01
          • 2015-10-13
          • 1970-01-01
          • 2018-11-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多