鉴于“1/2009停留时间更长”或“34/1874必须走”,如何使用正则表达式在“/”后面找到数字。
'1/2009'.match(/\d+\/(\d)\d\d\d/g)[0]
正在返回1/2009
,这不是我想要的。 THX
答案 0 :(得分:2)
如果您想在/
您的正则表达式\d+\/(\d)\d\d\d
将匹配数字/
,然后是四位数,并在捕获的组中的斜线后添加第一个数字。
请注意,第0个捕获的组将包含完整匹配的字符串。 g
标志不是必需的,因为该模式中只有一个数字实例。
您可以使用此正则表达式,但使用第一个索引可以在斜杠后立即获取数字。
'1/2009'.match(/\d+\/(\d)\d\d\d/g)[1]
^ : Get me the value from first captured group.
这个正则表达式可以优化到
以下.match(/\/(\d)/)[1]
这将匹配后跟/
的数字。并使用第一个捕获的组来提取数字。
<input type="text" onblur="console.log(this.value.match(/\/(\d)/)[1])" />
&#13;
获取/
只需在捕获的群组中将+
量词添加到\d
。
.match(/\/(\d+)/)[1]
答案 1 :(得分:1)
尝试
var string = "1/2009 stay longer";
console.log(string.match(/\/(\d+)/)[1]);
&#13;
\d+
匹配一个或多个数字。如果您只想在/
之后立即捕获数字,请改用string.match(/\/(\d)/
。
答案 2 :(得分:0)
您也可以使用regExp对象的exec方法:
console.log(/\d+\/(\d).*/.exec('1/2009')[1]);