2012-01-18 10 views
1

テキストエリアのテキストを取得し、すべての箇条書きのHTMLエンティティ•·に置き換えたいとします。JavaScriptを別のものに置き換える

通常のアプローチstr.replace(/•/g,"·");は機能しません。

アドバイスをいただければ幸いです。

+0

すべて動作します。 jsFiddleに問題を表示し、私たちに教えてください - どのブラウザでこの問題が起こっていますか? – c69

+0

この箇条書きは、このようにエンコードされているのか、それともリスト要素から来ていますか? – giker

+1

うまく動作します:http://jsfiddle.net/yXGD4/1/ – m90

答えて

3

textareaからテキスト値を戻すときは、すでに実際の文字に変換されています。 、その文字列の文字列置換を行うには

  1. すべての文字が何をやっているに進み、その後、自分のhtmlエンティティの対応に変換したり、
  2. のいずれかが直接正規表現で文字を使用します。

次に、2番目のアプローチの例を示します。

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

hereの例を試すことができます。

最初のアプローチに進みたい場合は、questionと、そのテキストの文字を対応するHTMLエンティティに変換する方法についてのその回答を参照してください。

+1

表示されたコードは箇条書きの点を削除し、jsfiddleコードはそれらを "[DELETED]"というテキストに置き換えますが、その原則はもちろん明らかです。問題の操作では、置換文字列は '' · ''、または等価的に' '" "'になります。ユーザーが文字どおりに入力した場合は、 '•'のような文字列を置き換えることを意図している場合は、別の質問です。 –

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')が値を設定します、入力要素から値を取得します。

関連する問題