JavaScript | replace()が効かない 良くある原因と解決策

JavaScriptのreplace()メゾットが効かない場合の良くある原因と対策を紹介しています。

replace()が効かない原因と解決策

replace()が効かない原因と解決策を紹介しています。

正規表現のパターン指定をクオーテーションで囲っている

replace()メゾットが効かない原因で、経験上、何度かあったのは正規表現をクオーテーションで囲って指定してしまっているケースです。

これは自身の経験上、正規表現のパターンをPHPコードからそのまま持ってきて使おうとする時に起こる簡単なミスですが、この場合、JavaScriptはコンソールエラーを出力しませんので確認が遅れます。

例えば以下のような改行文字を<br>に変換する事を期待するコードですが、シングルクォーテーションで括った正規表現パターンで記述してしまっていますので、エラーは出力されませんが変換もされません。

let text = `JavaScript
PHP
CSS
Python`;

text = text.replace('/\r\n/g', '<br>');

正常に動作させたい場合、JavaScriptでは正規表現パターンはクオーテーションで括らずに記述します。

let text = `JavaScript
PHP
CSS
Python`;

text = text.replace(/\r\n/g, '<br>');