2013-07-23 138 views

回答

4
var count = 0; 
text = text.replace(myRegex, function(match) { 
    count++; 
    if(count==1) { 
     return match; 
    } 
    else { 
     return myReplacedValue; 
    } 
}); 
2

你可以這樣做:

var i = 0; 
"foo foo foo".replace(/foo/g, function(captured/*, offset, originalString */) { 
    if (i++) { 
     return 'bar'; 
    } 
    return captured; 
}); 
+0

'if(i ++)'做了什麼? – usama8800

+0

它在每個週期遞增'i'。所以,第一次是0,這是虛假的。所以,它跳過了第一場比賽,但之後將是truthy。 – kalley

1

偉大的答案抽象......我從來沒有見過更換使用這樣的前

繼承人一個很好的雜亂版本..

text = text.replace(/boo/g, function(match) {return (++count==1)?match:myReplacedValue}); 
+0

謝謝。替換函數有'(正則表達式,回調)'樣式的參數,只需要搜索一下。 :) –

相關問題