2010-02-11 98 views
0

JavaScript text manipulation字符串操作

我需要一點操縱在string.I需要檢索匹配的文本,然後替換這樣

匹配text.Something替換(「@ anytext @」,@ anytext @)

我的字符串可以有@ anytext @ any在字符串中多次。

回答

1

您可以進行第二個參數replace功能:

str = "testing one two three"; 
str = str.replace(/one/g, function(match) { 

    return match.toUpperCase(); 
}); 

,它取代了 「一」 與 「ONE」。函數的第一個參數是正則表達式的匹配結果。函數的返回值是替換匹配的內容。

如果你在你的正則表達式的任何捕獲組,他們將更多的函數的自變量:

str = "testing one two three"; 
str = str.replace(/(on)(e)/g, function(match, group0, group1) { 

    return match.toUpperCase(); 
}); 

那請問第一個做什麼,但如果你願意,你可以看到什麼在捕獲小組。在那個例子中,group0將是「開」,而group1將是「e」。

5

這不是jQuery的,但常規的JavaScript

var stringy = 'bob john'; 

stringy = stringy.replace(/bob/g, 'mary'); 
+0

處理替換它,而不是檢索它。 – 2010-02-11 11:51:51

+0

@ T.J。該方法返回一個字符串與替換的子字符串。所以,stringy將包含一個字符串,其中子字符串bob被替換爲子字符串mary。 – ChadNC 2010-02-11 12:52:49

+0

@ChadNC:是的,沒錯。我對這個問題的解釋是她(?)想要檢索匹配的子字符串,以及替換字符串。但這可能只是我的解釋。 – 2010-02-11 13:27:10