gpt4 book ai didi

javascript - 正则表达式中的破折号

转载 作者:行者123 更新时间:2023-11-28 11:35:04 24 4
gpt4 key购买 nike

根据文档,String.prototype.match()必须返回字符串中正则表达式的所有匹配项。然而,

"Foo 09:00 bar 21-00 foobar".match(/\d{2}[:\-]\d{2}/)

仅返回["09:00"],而预期结果是["09:00", "21:00"]。为什么?

顺便说一下,

"Foo 09:00 bar 21-00 foobar".split(/\d{2}[:\-]\d{2}/)

返回["Foo ", "bar ", "foobar"],表示21-00与正则表达式匹配。

最佳答案

您缺少 g (全局)修饰符。使用它。

如果不这样做,它将在第一场比赛时停止。

像这样:

"Foo 09:00 bar 21-00 foobar".match(/\d{2}[:-]\d{2}/g)

此外,如果 - 位于字符类的开头或结尾,则无需对其进行转义。

MDN document您提到的还说:

  1. returns the same result as RegExp.exec(str) [i.e. the captured groups, index, etc] if the regular expression does not include the g flag
  2. returns an Array containing all matches if the regular expression includes the g flag

关于javascript - 正则表达式中的破折号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23914081/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com