プログラマー探偵のプチ事件簿:"TypeError: String.prototype.replaceAll called with a non-global RegExp argument"
TWSNMP FCを使っている時に
が発生した。以前は問題なかったと思う操作をしている時である。
問題の処理は、
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の運営にも貢献できるのでよろしくお願います。