我无法让这个简单的正则表达式正常工作

时间:2011-09-23 04:44:16

标签: javascript regex

我在Javascript中这样做

这是我的字符串:09.22.2011-23.21-west-day

以下是我想要解决的问题:23.21

这是我的表达:/-[0-9]*\.[0-9]*/

我得到-23.21所以我必须在此之后运行一个替换方法来删除“ - ”。有没有办法在这个正则表达式中省略“ - ”?我从未真正完善我的正则表达式技能,因为我通常使用具有nice()捕获组的PHP。

2 个答案:

答案 0 :(得分:0)

Javascript也有capture groups

var time = "09.22.2011-23.21-west-day".match(/-(\d{2}\.\d{2})/)[1]

给你23.21

  1. 您可以使用\d作为[0-9]
  2. 的简写
  3. 如果您知道它应该有多少位数,请使用{n}{m,n}量词。这将减少它匹配错误的机会。

答案 1 :(得分:0)

您也可以在JavaScript中使用()

s = '09.22.2011-23.21-west-day';
rx = s.match('-([0-9]*\.[0-9]*)')
alert(rx[1]);