2
 var s = "1236(75)";
 var s = s.replace(/\(|\)/g, '');

 alert (s); // this gives me 123675  


what i actually need is 75

any help will be appreciated!

上面的代码结果为 123675,但我需要它只返回 75,请帮忙

4

4 回答 4

6

用于^.+匹配输入字符串开头的所有内容。

var s = "1236(75)";
var s = s.replace(/^.*\(|\)/g, '');

也就是说,您可以使用正则表达式来做相反的事情:而不是摆脱您想要的一切,只需匹配您想要的部分

var match = s.match(/\((\d+)|\)/)[1];
于 2013-02-15T19:17:23.077 回答
0

尝试

var s = s.replace(/.*\(|\)/g, '');

但这只会删除前导字符(在 open-paren 之前)并且只允许一个带括号的部分。结束括号之后的任何内容都将保留。

您真正想要的是将字符串与周围的括号相匹配,并将括号内的部分返回给您。

var m = /\((.*\))/.exec(s);
if (m) var result = m[1]

然后,如果有更多括号部分,您可以使用 [1] 和 [2] 等等来获取它们。

你也可以用新的正则表达式和'split()'做类似的事情

于 2013-02-15T19:18:24.290 回答
0

如果您只需要匹配括号中的数字,您可以这样做

s.match(/\((\d+)\)/)[1]
于 2013-02-15T19:20:52.893 回答
0

从开头删除数字和左括号,从结尾删除右括号:

s = s.replace(/^\d*\(/, '').replace(/\)$/, '');
于 2013-02-15T19:22:23.443 回答