我不能让这个简单的正则表达式来正常工作
问题描述:
我在Javascript我不能让这个简单的正则表达式来正常工作
在这里做这个是我的字符串:09.22.2011-23.21-west-day
这里的想什么,我拉出来的:23.21
这里是我的表达:/-[0-9]*\.[0-9]*/
我得到-23.21
所以我不得不在这之后运行一个替换方法来删除“ - ”。有没有办法用这个正则表达式来排除“ - ”?我从来没有真正完善我的正则表达式技能,因为我通常使用具有nice()捕获组的PHP。
答
JavaScript有capture groups太:
var time = "09.22.2011-23.21-west-day".match(/-(\d{2}\.\d{2})/)[1]
给你23.21
- 您可以使用
\d
作为简写为[0-9]
- 如果你知道它应该多少位数字有,使用
{n}
或{m,n}
量词。它会减少匹配错误事件的机会。
+0
非常感谢。每个人的回答都很完美。我不知道捕获组被称为捕获组。这使一切变得更容易! – Skinner927
答
您也可以在JavaScript中使用()
!
s = '09.22.2011-23.21-west-day';
rx = s.match('-([0-9]*\.[0-9]*)')
alert(rx[1]);
Javascript也有'()'... –