0

文字列内で置換を繰り返し実行するメソッドを使用しています。

function replaceAll(srcString, target, newContent){
  while (srcString.indexOf(target) != -1)
  srcString = srcString.replace(target,newContent);
  return srcString;
}

しかし、主にそのテキストを適切に書く方法が考えられないため、目的のテキストでは機能しません。削除したいのは、文字通り、"\n"(コンマと引用符を含む)なので、正しく機能させるために2番目のパラメータとして渡すには?

前もって感謝します。

4

4 に答える 4

7

最初の引数に二重引用符を使用する場合は、引用符をエスケープする必要があります。replace

'some text "\n", more text'.replace("\"\n\",", 'new content');

またはあなたがすることができます

'some text "\n", more text'.replace('"\n",', 'new content');

2番目の例では、置換する最初の引数は文字列を示すために一重引用符を使用しているため、二重引用符をエスケープする必要はありません。

最後に、もう1つのオプションは、replace呼び出しで正規表現を使用することです。

'some text "\n", more text "\n",'.replace(/"\n",/g, 'new content');

末尾の「g」は、replace-all(グローバル)になります。

于 2012-08-07T13:06:13.523 に答える
4

削除する"\n"には、次を使用しますString.replace

srcString.replace(/"\n"[,]/g, "")

正規表現を使用して置き換えることができます/"\n"[,]/g

于 2012-08-07T13:06:15.863 に答える
2

そのような機能は必要ありません。replace関数gには、最初のパラメーターの代わりにすべてのオカレンスを置き換える追加のパラメーターがあります。

'sometext\nanothertext'.replace(/\n/g,'');
于 2012-08-07T13:07:06.720 に答える
0

文字列内の引用符がエスケープされているかどうかに関係なく、次のようになります。

 var str = 'This string has a "\n", quoted newline.';

また

var str = "This string has a \"\n\", escaped quoted newline.";

解決策は同じです(「!!!」を置き換えたいものに変更します"\n",

 str.replace(/"\n",/g,'!!!');

jsFiddleデモ

于 2012-08-07T13:12:50.243 に答える