2011-07-25 43 views
1

我試圖從字符串中刪除«或»以在javaScript中留下剩餘的文本。從JavaScript中刪除ASCII «或»

試過這沒有影響:

$('body').delegate('.SearchPagination > a', 'click', function(e){ 
    e.preventDefault(); 
    var $this = $(this), 
     txt = $this.text().toLowerCase(), 
     txt = txt.replace(/«|»/g, ''), 
     txt = $.trim(txt), 
     page = '&page='; 
     console.log(txt); 
    if (txt === 'next' || txt === 'previous'){ 
     // get the current page value 
     var active = $this.parent().find('.active').txt(); 
     if (txt === 'next'){ 
      // add one 
      page += (active + 1); 
     } else if (txt === 'previous'){ 
      // subtract one 
      page += (active - 1); 
     } 
    } else { 
     // invoke search with the page number 
     page += txt; 
    } 
    console.log(page); 
    //icisSite.icisSearch.search(page); 
}); 
+1

這工作得很好:「 」«測試»「 .replace(/ « | » /克, '')'。你的正則表達式沒有錯。 – pimvdb

回答

4

而不是使用&「在正則表達式中,嘗試複製粘貼瀏覽器中顯示的左箭頭字符 - 即«標誌。我試過了,它被正確地替換了。
所以,你的正則表達式應該像 -

txt = txt.replace(/«|»/g, '') 
1

你試過:

txt = txt.replace('«','').replace('»', ''); 

但我不認爲這是一點,因爲你的正則表達式是正確的,那麼,以防萬一(你的正則表達式對我來說似乎是正確的),你是否確定當你得到文本的時候,首先編碼的是htmlentities?也許頁面是UTF-8,實體不是編碼,但是沒有編碼顯示

+0

嗨。我猜這個頁面是在編碼之前進行編碼的,因此它失敗的原因是它不匹配«或»,因爲這兩個字符串都是在字符串中輸出爲<< and >>。有點難以理解如何進行。 – RyanP13