GAS+正規表現+変数+置換
SyntaxError: 量指定子 * は無効です
このエラーに悩まされました。
実装ソースはこんな感じです。
[やりたいこと]
「aaa???aaa」という文字列から?(クエスチョンマーク)を省きたい。
var bf = "?";
var af = " ";
var rval= "aaa???aaa"
rval = rval.toString().replace(bf, af);
[結果]
「aaa??aaa」
クエスチョンマークが1つしか置換されていません。
Replaceでは1文字しか置換されない仕様のようです。
[失敗例]
こんな感じで実装してみましたが、SyntaxError: 量指定子 * は無効ですのエラー
rval = rval.replace(new RegExp(bf , 'g'), af);
bfがクエスチョンマークでなくaであればできるのですが、特殊文字ではうまくいきませんでした。
[解決策]
rval= rval.split(bf).join(af);
一旦、クエスチョンマーク区切りで配列にしたのを繋ぎ直す。
ちょっと無理やり感はありますがこれで上手くいきます。