从括号内获取整数

时间:2012-10-19 20:27:39

标签: javascript regex

我有一个字符串,我试图抓住内部的整数。字符串看起来像:

  

"(2) This is a string"

我需要抓住2。但它可以是任何数字,所以我试过:

 var str = "(2) this is a string";
 var patt = /\(\d\)/;

 var num = str.match(patt);

这不会返回正确的答案。我应该对()进行拆分还是有更好的正则表达式?

4 个答案:

答案 0 :(得分:2)

var str = "(2) this is a string";
var patt = /\((\d)\)/;

var num = str.match(patt)[1];

2件事。如果要从匹配的字符串中捕获段,可以使用()来注明。所以我只是将\d包裹在parens中以捕获它。

其次,为了访问捕获的段,您必须深入查看返回的数组。 match方法将返回一个数组,其中第一项是整个匹配的字符串,第二项是任何匹配的捕获组。因此,使用[1]来获取第一个捕获组(数组中的第二项)

答案 1 :(得分:0)

var str = "(2) this is a string";
var patt = /\((\d+)\)/;
alert(str.match(patt)[1]);

这有效!

为什么会有效。因为在(())混乱中,还有一个捕获,它填充匹配数组中的[1]元素。

答案 2 :(得分:0)

使用它。没有多少括号

var str = "(2) this is a string";
var patt = /\(\d\)/;

var num = str.match(patt)[0].replace("(", "").replace(")","")

这应该有效

答案 3 :(得分:0)

 var str = "(2) this is a string";
var a =  /\([\d]*\)/g.exec(str)[0];
 var num =  a.substring(1, a.length-1);