每次运行时为什么不删除(数字)?

时间:2009-11-01 10:07:24

标签: javascript jquery

var somestring = "mary(3) apple(2) sky(1)";
$("#removelaststring").unbind("click").bind("click",function(e){

somestring = somestring.replace(/\(\d+\)*$/, "")
alert(somestring);

});

我应该

mary(3) apple(2) sky

然后如果我运行它agan

mary(3) apple sky

如果再次运行

mary apple sky

然而,无论我点击多少次

,都不会发生这种情况
mary(3) apple(2) sky

2 个答案:

答案 0 :(得分:3)

你的正则表达式中有一个锚($),它要求它只在字符串的末尾匹配。 “(2)”之后不允许使用任何字符。 我想你想要这个

somestring = somestring.replace(/\(\d+\)([^(]*)$/, "$1")

允许任何字符,但是'('在被移除的部分之后。'假设'('只会出现在某些部分“(2)”。

答案 1 :(得分:0)

您正在用''(空格字符串)替换字符串末尾的'(n)',所以 mary(3) apple(2) sky(1)变为mary(3) apple(2) sky,但接下来,再没有'(n)',所以不再进行更换。