2012-01-18 94 views
1

我想獲得一些textarea文本並用·替換所有項目符號html實體•JavaScript替換()一個html實體與另一個html實體

通常的方法str.replace(/•/g,"·");不起作用。

任何意見,將不勝感激。

+0

一切正常。顯示你的問題jsFiddle,並請告訴我們 - 什麼瀏覽器有這個問題? – c69 2012-01-18 09:20:41

+0

這個項目符號是像這樣編碼還是來自列表元素? – giker 2012-01-18 09:21:31

+1

工作得很好:http://jsfiddle.net/yXGD4/1/ – m90 2012-01-18 09:23:37

回答

3

當您從文本區域獲取文本值時,它已經轉換爲其實際字符。要做到在該字符串的字符串替換,要麼

  1. 轉換的所有字符的HTML實體同行,然後用你正在做或
  2. 在正則表達式直接使用的字符是什麼進行。

下面是第二種方法的示例。

var newText = oldText.replace(/•/g, ""); 

你可以用例子here來搗鼓。

如果你想要去與第一種方法,請參閱本question及其答案的途徑字符一段文字轉化爲相應的HTML實體。

+1

提供的代碼刪除了項目符號點,jsfiddle代碼用文本「[DELETED]」替換它們,但是原理當然很清楚。對於問題中的操作,替換字符串應該是'「·」',或者等同於''「」。如果意圖是要替換像'•'這樣的字符串,如果用戶輸入字面意思,那麼這是一個不同的問題。 – 2012-01-18 12:45:22

2

如果你想做到這一點沒有jQuery的:

var myTextarea = document.getElementById('id_of_your_textarea'); 
myTextarea.value = myTextarea.value.replace(/•/g, '·'); 

的jQuery:

$("#myTextarea").val($("#myTextarea").val().replace(/•/g, '·')); 

.val()將獲得從輸入元素的值,.val('str')將設置一個值。