今更だけど、忘れそうなのでメモ。
JavaScript 文字列置換、replace ( 対象文字列, 置換文字列 ) は、
最初に見つかるもの1個だけを置換するのは、非プログラマでないかぎり常識で
全てを置換するのは、 正規表現で replace( /pattern/g , 置換文字列 ) を使うであろう。
最初に見つかるものだけ。
var result = str.replace("a", 'A');
全て、、
var result = str.replace(/a/g, 'A');
しかし、周りの処理ロジックの都合で、置換対象を /pattern/g のように、
リテラルにコードを記述するのでなく、動的な可変文字列を対象に、全て置換したい場合があるはずだ。
replaceall なるメソッドがあればいいのにと、いつも思う。が、そんなのあるわけない。
考え方を変えて、、対象文字列で splitして、置換文字列で JOINすれば良い。
var target; // target が何らかの処理で文字列が動的に格納 var result = str.split(target).join('A')
ついでに以下を憶えておくとよい。
$& 使えば、マッチするものを再指定するので数字をシングルクォートで括る場合。。
var result = str.replace(/[0-9]+/g, "'$&'");