javascript - 如何将日期字符串与正则表达式匹配

标签 javascript regex typescript

我正在尝试检查输入值是否与日期格式 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/

相关文章:

MySQL REGEXP 匹配正数

regex - 增加字符串中所有遵循某种模式的术语的数量

angular - 在 ionic2 的日期时间选择器中订阅完成事件

javascript - Vuetify 文本区域为空或少于 200 个字符的规则

javascript - JSLint:跨函数交叉引用

c# - "Tight"重复键/值匹配

c# - 在 C# 中以编程方式编译 typescript ?

javascript - jQuery:从字符串类型转换为$.each中的字符串对象

javascript - 在 jQuery 中取消注册委托(delegate)事件

typescript - 使用 Mocha、Chai 和 TypeScript 设置时,WebStorm 找不到 ts-node/module 和描述定义