サイトアイコン 成功者への道

GASで正規表現で全ての文字列置換をしたいのにできない方はこれを読もう

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);
一旦、クエスチョンマーク区切りで配列にしたのを繋ぎ直す。
ちょっと無理やり感はありますがこれで上手くいきます。
モバイルバージョンを終了