0

データベースへのクエリを通じて、以前にHTML textareaまたはinput. DB から応答を受け取ると、JSONオブジェクトのtextフィールドは次のようになります。

  obj :  {
           text :  [some_text] ↵ [some_text]
         }

私はこれに置き換えようとしましたfunction

 string_convert = function(string){
  return string.replace("&#8629",'<br>')
               .replace('&crarr','<br>')
               .replace('/[\n\r]/g','<br>');
 }

この文字列をHTMLで表示する必要がありますが、うまくいかないようです。私は使用していますUTF-8

何かアドバイス?

4

3 に答える 3

1

問題は、正規表現を引用符で囲んでいることです。これは正しくありません。

.replace('/[\n\r]/g','<br>');
         ^         ^
       remove these two quotes

正規表現はすでにスラッシュで区切られているため、引用符は不要です。

そこに引用符を入れることで、正規表現ではなく固定文字列を置き換えたいことを実際に伝えたことになります。固定文字列は式のように見えるかもしれませんが、引用符があると単なる文字列として表示されます。

引用符を削除すると、式として表示され、問題なく機能します。

ただし、正規表現を完全に機能させるために、正規表現を少し変更することもお勧めします。現状では、すべての\nand\r文字をに置き換えるだけ<br>です。しかし、場合によっては\r\nペアになることもあります。これは 1 つの改行である必要がありますが、式では 2 つ<br>の s に置き換えられます。

代わりに次のような式を使用できます。

/\r\n|\n|\r/g

それが役立つことを願っています。

于 2013-03-17T19:13:37.323 に答える
0

From:キャリッジ リターンをJavascript の html タグに変換しようとしていますか?

text = text.replace(/(\r\n|\n|\r)/g,"<br />");
于 2013-03-17T18:56:00.953 に答える
0

;コードに最後のセミコロンがありません:

string_convert = function(aString){
  return aString.replace("&#8629;",'<br>').replace('&crarr;','<br>');
}

これで問題が解決するわけではありませんが、問題が解決する可能性があります。

于 2013-03-17T18:55:49.907 に答える