見出し画像

プログラマー探偵のプチ事件簿:"TypeError: String.prototype.replaceAll called with a non-global RegExp argument"

TWSNMP FCを使っている時に

"TypeError: String.prototype.replaceAll called with a non-global RegExp argument"

が発生した。以前は問題なかったと思う操作をしている時である。
問題の処理は、

      this.selected.Pat = this.selected.Pat.replaceAll(/\r?\n/, '')

のような改行コードを削除する処理である。replaceAllで使う正規表現にgフラグが必要というエラーのようなので、

     this.selected.Pat = this.selected.Pat.replaceAll(/\r?\n/g, '')

のようにすると治った。いつのまにか、ブラウザーのチェックが厳しくなったのか?それもと、作った時に見逃したのか?今となっては定かでない。助手の猫が天から
バグは忘れたころに発生することもある
と言っている。

正規表現使わずに

      this.selected.Pat = this.selected.Pat.replaceAll('\n', '')
      this.selected.Pat = this.selected.Pat.replaceAll('\r', '')

のほうが安全な気がするので、このように修正した。

開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。