javascript:replace()で正規表現に変数を使う場合

置換するのに正規表現を使いたくて、
その正規表現の中に変数を指定したらうまく動かなかったのでメモ

なにやらそういう時はRegExpオブジェクトを使うらしい('-'*)

pattern 1.
str.replace(/ABC/g, '*');

pattern 2.
str.replace(new RegExp('ABC', 'g'), '*');

は同じ結果になります(*'x')

funciton (str) {
    // 全角数字を半角数字に置換え
    var zen = ['1','2','3','4','5'];
    var han = ['1','2','3','4','5'];
    for (var i=0; i < zen.length; i++) {
        str = str.replace(new RegExp(zen[i], 'g'), han[i]);
    }
    return str;
}