2011-11-05 27 views
3

這讓我瘋狂,這是行不通的原因是什麼?用jquery替換正則表達式匹配的文本

var name = data.match(/first-([A-Za-z0-9-]+)/g).replace('first-', ''); 

我想joe更換first-joe

我也試過

var name = data.match(/first-([A-Za-z0-9-]+)/g); 
var name = name.replace('first-', ''); 

並不起作用。

但是警報時的名字,我得到first-joe

,這是什麼原因,以及如何解決這個問題?

感謝

回答

1

match/g返回匹配(不含括號子)的數組,所以你將不得不replace他們的個人。如果您知道只有一個匹配項,請使用提取帶括號的子字符串的data.match(/first-([A-Za-z0-9-]+)/)[1]

+0

,我會記得下次。它的工作原理,謝謝! –

3

試試這個:

var name = data.replace(/first-([A-Za-z0-9-]+)/g, '$1'); 
+0

數據是GET請求的內容,當我這樣做時,它只是提醒我看到的源 –

1

我不確定你爲什麼先打電話比賽。爲什麼不簡單地做這些?

var name1 = data.replace('first-', ''); 
var name2 = data.replace(/^first-/, ''); //In case somebodys got a name containing first-. 

是因爲你的數據變量比字符串'first-joe'多嗎?