2009-11-01 68 views
0
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 

那麼如果我阿甘

mary(3) apple sky 

運行,如果再次運行

mary apple sky 

但是這種情況不會發生,不管多少次我點擊我得到

mary(3) apple(2) sky 

回答

3

有沒有在您的正則表達式錨($),這要求它只匹配字符串的結尾。沒有字符之後「(2)」是允許的。 我猜你想要這個

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

允許任何字符,但「(」被刪除。假設部分後「(」,只是要出現的某些部分「(2)」。

0

您正在更換「(N)」,在與「字符串的結束」(空字符串),所以 mary(3) apple(2) sky(1)變得mary(3) apple(2) sky,但隨後圍繞着下一次,沒有一個「(N)」了,所以沒有進一步的替代發生。

相關問題