首页 > 解决方案 > 为什么这个正则表达式不正确?

问题描述

我有以下正则表达式:

\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?

标签: javascriptregex

解决方案


使用常规的 js 正则表达式语法。像这样:

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'));


推荐阅读