JavaScriptの正規表現でカンマを置換する方法をわかりやすく解説
JavaScriptの正規表現でカンマを置換する方法
例として、カンマを含む以下の文字列を想定します。
"My Favorite subject is," "My Favorite subject is, and teacher name is Adam Smith" "My Favorite subject is, and got the marks 89"
文字列内のカンマを置換するには、replace()メソッドと正規表現を組み合わせて使用します。以下がそのサンプルコードです。
サンプルコード
const makingRegularExpression = /,(?=[^]*$)/;
replaceComma("My Favorite subject is,");
replaceComma("My Favorite subject is, and teacher name is Adam Smith");
replaceComma("My Favorite subject is, and got the marks 89");
function replaceComma(values){
console.log(values, " ==== replaced by JavaScript ==== ", values.replace(makingRegularExpression, " JavaScript"));
}正規表現パターンの解説
ここで使用している正規表現 /,(?=[^]*$)/ は、文字列内の最後のカンマだけにマッチするパターンです。仕組みは以下の通りです。
,:カンマそのものにマッチします。(?=[^]*$):先読み(lookahead)と呼ばれる構文で、「その位置以降、文字列の末尾までカンマが存在しない」ことを条件にしています。
この組み合わせにより、文字列中の最後のカンマのみが置換対象となり、それ以外のカンマはそのまま保持されます。
プログラムの実行方法
上記のプログラムを実行するには、Node.js環境で以下のコマンドを使用します。
node ファイル名.js
ここでは、ファイル名を demo164.js としています。
実行結果
プログラムを実行すると、以下のような出力が得られます。
PS C:\Users\Amit\javascript-code> node demo164.js My Favorite subject is, ==== replaced by JavaScript ==== My Favorite subject is JavaScript My Favorite subject is, and teacher name is Adam Smith ==== replaced by JavaScript ==== My Favorite subject is JavaScript and teacher name is Adam Smith My Favorite subject is, and got the marks 89 ==== replaced by JavaScript ==== My Favorite subject is JavaScript and got the marks 89
まとめ
このように、replace()メソッドと先読みを使った正規表現を組み合わせることで、文字列内の特定のカンマ(この例では最後のカンマ)だけを簡単に置換できます。なお、文字列内のすべてのカンマを置換したい場合は、正規表現に g フラグを付けて /,/g とするだけで対応可能です。用途に応じて正規表現パターンを使い分けることで、文字列処理の幅が大きく広がります。
-
JavaScriptのgetPrototypeOf()メソッドとは?具体例でわかる使い方とプロトタイプの確認方法
JavaScriptのgetPrototypeOf()メソッドとは? getPrototypeOf()メソッドは、ユーザーが作成したオブジェクトのプロトタイプ(内部スロット [[Prototype]])を取得するために使用されるメソッドです。また、「2つのオブジェクトが同じプロトタイプを持っているかどうか」を比較したい場合にもよく活用されます。 以下に、getPrototypeOf()関数を使った具体的なコード例を示します。 コード例 <!DOCTYPE html> <html lang="ja"> <head> <meta cha
-
JavaScriptでHTMLのdiv要素内のテキストを一括置換する方法
Webページ上の複数の要素に対して、特定のテキストをまとめて差し替えたいケースはよくあります。たとえば、見出し(h2タグなど)に入っている文字列を、ページ内のすべてのspan要素に反映させたい場合などが該当します。 このような処理を実現するには、document.querySelectorAll() を使用します。あわせて getElementsByClassName() を組み合わせることで、クラス名を指定して対象のテキストを取得できます。 実装のポイント document.querySelectorAll(.my-main-div-class span) で、親要素(div)の中にあるす