正则表达式日期验证yyyy-mm-dd返回空Javascript

xdnvmnnf  于 2022-10-30  发布在  Java
关注(0)|答案(1)|浏览(108)

我正在用js测试我的正则表达式验证器,我已经在测试器中测试了正则表达式,它是有效的,但我认为问题是我的代码,我是相当新的JS。希望有人能帮助我在这一点上。谢谢
这是我使用的输入字符串,然后我将返回的值标记为每个字符串,它是有效的yyyy-mm-dd格式,以检查它是否是日期。
第一个
我不知道为什么它返回null,顺便说一句,我只需要捕获日期,这样我就可以用任何我想要的替换日期。谢谢

ttvkxqim

ttvkxqim1#

只需将字符串""更改为正则表达式//,而不是将"([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))"更改为:/([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))/ .
例如,它应该返回以下数组:

[
  '2022-10-31',
  '2022-10-31',
  '10',
  '31',
  index: 0,
  input: '2022-10-31)',
  groups: undefined
]

您可以通过item[0]访问匹配的值。
因此新代码如下:

const token = `HRT: Human Resource Ticketing" AND (("Time to first response" = breached() OR "Time to resolution" = breached()) AND resolution = Done AND "Request Type" = "Payroll Dispute (HR)") AND (createdDate >= 2022-10-1 AND createdDate  <= 2022-10-31)`
const regex = /([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))/

const items = token.split(" ");
    for (const item of items) {
    const match = item.match(regex)
    if (match) console.log(match[0])
}

相关问题