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

仕事以外でも収入が欲しい方

まずは、こちらを読んでみてください。読むのはもちろんタダです。自分にあったものがきっと見つかるはず。



無在庫販売でお小遣い稼ぎしませんか?






初心者も多数使っているので安心して始められます。




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUTこの記事をかいた人

モットーはスティーブ・ジョブズのStay hungry Stay Foolish. 野心を持って正しい方法を身につければ誰でも成功できることを証明していきます。 本職以外で収入を得たい方の手助けができればと思います。