为什么此正则表达式不正确?

时间:2018-09-11 19:32:58

标签: javascript regex

我有以下正则表达式:

\d{4}(-\d{2}){2}

应该匹配YYYY-MM-DD格式的日期,因此1990-01-01应该成功匹配。但是,当我在javascript中尝试时,此操作将失败。

var x = new RegExp('\d{4}(-\d{2}){2}')
x.test('1990-02-01')    //why is this false?

1 个答案:

答案 0 :(得分:2)

使用常规js regex语法。像这样:

var x = /\d{4}(-\d{2}){2}/;
console.log(x.test('1990-02-01'));

如果要保留new RegExp部分,则必须转义字符串的反斜杠:

var x = new RegExp('\\d{4}(-\\d{2}){2}');
console.log(x.test('1990-02-01'));