2013-02-17 133 views
0

我對content replace function:內容替換功能

一個跟進的問題這是我當前的內容替換功能:

content = content.replace(/(<t t>(.*?)<t t>)/g, function(m,p1,p2){ 
    return p2,p1.replace(/  /g,"_").replace(/<t t>/g,"<html>"); 
}); 

當我運行:

This <t t>this a test<t t> of 

通過我的HTML程序文本區域:

<textarea id="content" cols="48" rows="8"></textarea><br /> 
<input type="button" value="Process" onclick="process()" /> 

我會收到此作爲輸出:

This <t_t>this_a_test<t_t> of the replace. 

而不是我想這將是這樣的:

This <t d>this_a_test<t d> of the replace. 

我知道原因

<t t> 

不會取代

<t d> 

是因爲我的功能正在尋找一個空間,反過來會省略該空間並創建一個下劃線。但我無法弄清楚如何避免這種情況的發生,同時仍然用兩個標籤中的下劃線替換空格,例如

this a test 

將成爲

this_a_test 

回答者我以前用這個有用的資源.replace() method幫助我理解的問題,但令我懊惱我無法弄清楚這一點我自己。非常感謝您的時間提前對您有所幫助,如果需要的話這裏是一個鏈接我example

+1

你想達到什麼目的?請澄清。 – 2013-02-17 22:11:23

+0

我想改變我目前的功能,以便當'This 這個測試的替換.'輸入到我的過程文本區時,結果就是這個'This this_a_test 的替換。「我對此感到抱歉,如果還有任何請讓我知道 – Clint 2013-02-17 22:14:54

+0

沒有問題,thx的信息 – 2013-02-17 22:15:36

回答

0

因此,根據您的評論...

...所以,當「這<TT>這是一個測試<tt>的取代「。進入到我的過程文本區域,結果會是這樣 「這<TD> this_a_test < TD的替代>」 ......

...你可以簡單地做:

content.replace(/<t t>/g, "<t d>"); 

請記住,正則表達式中的/g標誌匹配測試字符串中的所有模式(g代表「全局」)。

+0

謝謝你的回答,我相信我們是在正確的軌道上,但以此爲例:[link]( http://jsfiddle.net/WVUYX/44/)。 ''將會有效地替代爲'',但是「是一個測試」部分不會被改變爲提供空格並添加下劃線。在這個例子中,情況正好相反:[link](http://jsfiddle.net/WVUYX/45/)。 – Clint 2013-02-17 23:29:33