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,请帮助
答案 0 :(得分:5)
使用^.+
匹配输入字符串开头的所有内容。
var s = "1236(75)";
var s = s.replace(/^.*\(|\)/g, '');
也就是说,你可以使用正则表达式来做相反的事情:而不是摆脱你不想要的一切,只需匹配你做想要的部分:
var match = s.match(/\((\d+)|\)/)[1];
答案 1 :(得分:0)
尝试
var s = s.replace(/.*\(|\)/g, '');
但是这只会删除前导字符(在open-paren之前)并且只允许一个带括号的部分。闭幕式之后的任何事情都将继续存在。
你真正想要的是将字符串与周围的parens相匹配,然后将你的部分放回到parens中。
var m = /\((.*\))/.exec(s);
if (m) var result = m[1]
然后,如果有更多带括号的部分,你可以用[1]和[2]等来获得它们。
你也可以用新的正则表达式和'split()'
做类似的事情答案 2 :(得分:0)
如果您只需要匹配括号中的数字
s.match(/\((\d+)\)/)[1]
答案 3 :(得分:0)
从头开始删除数字和左括号:
s = s.replace(/^\d*\(/, '').replace(/\)$/, '');