jQuery - 获取括号内的值

9
我有一个HTML表格,每行中都有数值。
表格中的数据格式如下:

ABCD(1000.50)

$('.tdclass').each(function(index){
  var test = push($(this).text().match(?regex?));
});

嗯,正则表达式绝对不是我的强项;-)
获取括号内的值所需的正则表达式是什么?

任何帮助都将不胜感激!


你可能想要像这样使用indexOf()和substring():var test = push($(this).text(); test = test.substring(test.indexOf('('),test.length-1);如果你总是有那个命名模式,那么这应该可以工作。 - Andresch Serj
3个回答

13

如果一个字符串的开头具有固定的长度,您可以使用slice()避免复杂的过程:

var str = "ABCD (1000.50)";

alert(str.slice(6, -1));
//-> "1000.50"

否则,您可以使用indexOf()和(如果需要)lastIndexOf()来获取值:

var str = "ABCDEFGHIJKLMNO (1000.50)",
    pos = str.indexOf("(") + 1;

alert(str.slice(pos, -1));
//-> "1000.50"

alert(str.slice(pos, str.lastIndexOf(")");
//-> "1000.50"

1
一个最简单的正则表达式\((.*)\)就可以解决问题,但是这并没有考虑到多个括号,并且在此之前没有必要包含4个字符。它字面上的意思是“匹配(,后跟尽可能多的非换行符字符,然后是)”。

变量str = "ABCD (1000.50)"; var test = str.match('((.*))');这给了我结果 ABCD (1000.50),ABCD (1000.50),ABCD (1000.50)match()函数里面有什么问题吗? - netcase
你需要使用/regex/而不是'regex',例如:str.match(/\((.*)\)/); - Simon Scarfe

0

下投票是为了什么?至少留下评论来解释一下。原帖作者写道:“正则表达式绝对不是我的强项”,并请求“任何帮助”。 - Tim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接