3

javascript 正規表現置換でカウンターを貼り付けるにはどうすればよいですか?

Perl/PCRE については、こちらの質問に回答しています。

私は明らかな を試しましたがstring.replace(/from/g, "to "+(++count))、これは良くありません (++count は string.replace の開始時に一度評価されるようです)。

4

2 に答える 2

5

マッチごとに呼び出される関数を replace に渡すことができます:

// callback takes the match as the first parameter and then any groups as
// additional, left it empty because I'm not using them in the function.
string.replace(/from/g, function() {
  return "to " + (++count);
});

これは、クライアント側で複雑な文字列部分 (埋め込みコードを含むユーザー コメントなど) を置き換えて、サーバーの負担を少し軽減するのに非常に便利なツールであることがわかりました。

于 2013-04-05T06:07:07.093 に答える
2

コールバックを使用するとうまくいくかもしれません:

var i = 0;
string.replace(/from/g, function(x){return "to " + i++;})

乾杯。

于 2013-04-05T06:07:54.880 に答える