【问题标题】:Pattern check returning false javascript/typescript [duplicate]模式检查返回错误的 javascript/typescript [重复]
【发布时间】:2016-07-25 21:31:29
【问题描述】:

我正在尝试验证我输入的字符串是否与日期格式“MM/yyyy”匹配

下面是我使用的代码示例:

var date='05/2016'
var patt= new RegExp('^((0[1-9])|(1[0-2])|[1-9])\/(\d{4})$');
patt.test(date);

但是上面的代码返回 false。

我尝试使用正则表达式检查器运行它: https://regex101.com/

模式似乎运行良好。

有人可以告诉我缺少什么吗? https://jsfiddle.net/ymj6o8La/

【问题讨论】:

    标签: javascript regex typescript


    【解决方案1】:

    您必须转义传递给 RegExp 的字符串(反斜杠)。

    var patt= new RegExp('^((0[1-9])|(1[0-2])|[1-9])\\/(\\d{4})$');
    

    更好的是,在你的情况下,它不是动态的,所以你应该使用文字 RegExp 来代替

    var patt = /^((0[1-9])|(1[0-2])|[1-9])\/(\d{4})$/
    

    【讨论】:

      【解决方案2】:

      你应该转义你的反斜杠。要表示\d 甚至\,你应该在它后面加上一个反斜杠(e.g: \\)

      var date = '05/2016'
      var patt = new RegExp('^((0[1-9])|(1[0-2])|[1-9])\\/(\\d{4})$');
      console.log(patt.test(date));

      【讨论】:

        【解决方案3】:

        尝试使用这样的模式

        patt= /^((0[1-9])|(1[0-2]))\/(\d{4})$/;
        

        【讨论】:

          猜你喜欢
          • 2017-03-14
          • 1970-01-01
          • 2019-01-23
          • 1970-01-01
          • 2020-10-10
          • 2020-06-21
          • 2021-03-16
          • 2017-07-27
          • 1970-01-01
          相关资源
          最近更新 更多