2012-02-15 37 views
5

我有以下的JQuery AJAX調用,它將HTML表單數據發送到我的服務器端腳本來處理。不過,我目前發現換行符並將它們轉換爲<br />以在我的應用程序的另一部分中顯示。我現在需要確保我刪除了撇號,但是我對如何一次替換多個字符沒有信心。查找多個字符並用JQuery替代

這是我在將這個添加到我的AJAX之前使用的JQuery。

description = $("#description").val().replace(/\n/g, '<br />'); 

任何人都可以指向正確的方向嗎?

感謝

+0

可能重複[JavaScript值替換多個值(http://stackoverflow.com/questions/ 9073372/javascript-value-replace-for-multiple-values) – 2012-02-15 09:32:18

回答

15

你不必這樣做在一個呼叫的感覺一氣呵成.replace(),只是鏈的多個.replace()電話:

description = $("#description").val().replace(/\n/g, '<br />') 
            .replace(/'/g, ''); 

(或具有'&#39;''&apos;'如果更換這就是你需要的......)

+0

這是現貨!我不認爲它會那麼簡單! – 2012-02-15 11:46:41

+0

另外,任何人都可以告訴我爲什麼我的原始替換(),可能會導致它用「」代替「0」... – 2012-02-15 11:47:27

1

0123'方法使用encodeURIComponent來編碼表單中的所有字段,所以你不必手動轉義字符串。

如果它不是一個形式,只需使用:

description = encodeURIComponent($("#description").val()); 
0

嘗試這個 把你的價值觀變量和更換。

$(function() { 
      var s = "str"; 
      var t = "nw str"; 
      alert(s.replace(s, t)); 
     }); 
0

您可以創建函數的遞歸

function replaceBr(){ 
    var val = $("#description").val();  
    while (val !=(val = val.replace(/\n/g, '<br />'))); 
    return val; 
} 

THX

+0

正則表達式中的g標誌意味着模式的所有出現將被替換,您不需要添加一個循環。 – nnnnnn 2012-02-15 09:57:52

2

我與你沒有做這一切一氣呵成,雖然你可以使用或|正則表達式運算符NNNNNN同意並使用一個回調像下面,看到mdn regex更多細節

var foo = '"there are only 10 people in this world that understand binary, 
      \n those who can and those who can\'t"\n some joke'; 

foo = foo.replace(/\n|"/g, function(str) { 
    if (str == '\n') { 
    return '<br/>'; 
    } else { 
    return ''; 
    } 
}); 

document.write(foo); 

這裏是demo

2

您可以使用| (管)包括多個字符替換:

str = str.replace(/X|x/g, ''); 

(看到這裏我的小提琴:fiddle)的