【问题标题】:Understand JS .match() work [duplicate]了解 JS .match() 工作[重复]
【发布时间】:2014-12-29 09:47:50
【问题描述】:

嗨,我有下一个字符串和正则表达式:

"Hello many 2014 (12) and another (88)".match(/\((\d+)\)/g)

为什么返回值是 ["(12)", "(88)"] 而不是 [12, 88] ? 我需要第二个选项。

【问题讨论】:

  • 这是match函数的行为。
  • 修正帖子的标题。正则表达式工作正常。不起作用的是您对match 工作原理的理解。
  • .match() 返回整个正则表达式的所有匹配项,而不仅仅是捕获组。

标签: javascript regex


【解决方案1】:
\d+(?=\))

你可以试试这个。这应该适合你。

如果你有像abc (def 234) (45) 这样的字符串,那么使用\((\d+)\) 并抓取group 1

【讨论】:

  • 输入字符串abc (def 234) (45)无法正常工作
  • OP 的意图似乎是从我上面给出的示例字符串中提取 45 并留下 234。
  • 这对我不起作用 ["(12", "(88"] = "Hello many 2014 (12) and another (88)".match(/(\d+(? =))/g)
  • @IlyaManyahin \d+(?=\)) 你有不同的用途
  • 为什么投反对票??????????//
猜你喜欢
  • 2014-11-01
  • 2017-03-20
  • 2021-05-21
  • 1970-01-01
  • 1970-01-01
  • 2018-10-06
  • 2011-05-17
  • 1970-01-01
  • 2018-04-01
相关资源
最近更新 更多