2012-06-08 119 views
1

我想通過使用jquery get函數讀取html文件,替換一些字符然後顯示結果。我寫了get函數並可以替換文本。表中有很多行。行內的所有數據顯示爲文本。行以空格結束;所以我想替換「;」每行的字符。但下面的代碼只是替換第一行的字符。我怎樣才能取代所有「;」所有行的字符?jQuery獲取函數

$.ajax({ 
     url: 'http://url', 
      type: 'GET', 
      success: function(data) { 
      var def = $(data).find('tbody#div.divWord').html(); 

       $('#def').append('<p><b>' + word + '</b>:' + def + '</p>'); 

       $("div").each(function() { 
        var text = $(this).text(); 
        text = text.replace(" ;", "@"); 
        $(this).text(text); 
       }); 

      }, 
      error: function(data) { 
       alert('error'); 
      } 
     }); 

回答

2

替換功能默認情況下只在第一個結果相匹配。

如果您要更換每一次出現,你必須採取一個正則表達式,並設置了「全局標誌」:

text = text.replace(/ ;/g, "@"); 

text = text.replace(/\s;/g, "@"); 

其中\s匹配空格字符。

text = text.replace(new RegExp(" ;","g"),"@"); 
+0

我不能代替空格字符。我使用RegExp(「;」,「g」),「@」)但不工作。當我使用RegExp(「;」,「g」),「@」)時,它可以工作。 – Oktay

+0

我猜''\ s;「'會做這項工作。 – Christoph

+0

text.replace(/ \ s \ s;/g,'@');是OK – Oktay

1
text = text.replace(" ;", "@"); -> text = text.replace(/ ;/g, "@"); 
+0

這真的幫助,如果你添加一個簡短的說明...;) – Christoph

1

使用正則表達式替換,這樣就可以指定全局(G)標誌:

text = text.replace(/ ;/g, "@");