我正在尝试检查输入值是否与日期格式 YYYY-MM-DD
匹配或YYYY-MM-DD - YYYY-MM-DD
使用以下代码,但它在输入 2018-01-29
上返回 false 。
const singleDateRegex = new RegExp('\d{4}-\d{2}-\d{2}$');
const rangeRegex = new RegExp('\d{4}-\d{2}-\d{2} \d{4}-\d{2}-\d{2}$');
const matchSingle = singleDateRegex.test(value); //false
const matchRange = rangeRegex.test(value); //false
最佳答案
您必须转义 RegExp 构造函数中使用的 \
(\\
)。
为什么不使用正则表达式文字,它由包含在斜杠之间的模式组成:
const singleDateRegex = new RegExp(/\d{4}-\d{2}-\d{2}$/);
const rangeRegex = new RegExp(/\d{4}-\d{2}-\d{2}\s\d{4}-\d{2}-\d{2}$/);
console.log(singleDateRegex.test('2018-01-29'));
console.log(rangeRegex.test('2018-01-29 2018-01-29'));
关于javascript - 如何将日期字符串与正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51359272/