JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

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 とするだけで対応可能です。用途に応じて正規表現パターンを使い分けることで、文字列処理の幅が大きく広がります。

  1. JavaScriptのgetPrototypeOf()メソッドとは?具体例でわかる使い方とプロトタイプの確認方法

    JavaScriptのgetPrototypeOf()メソッドとは? getPrototypeOf()メソッドは、ユーザーが作成したオブジェクトのプロトタイプ(内部スロット [[Prototype]])を取得するために使用されるメソッドです。また、「2つのオブジェクトが同じプロトタイプを持っているかどうか」を比較したい場合にもよく活用されます。 以下に、getPrototypeOf()関数を使った具体的なコード例を示します。 コード例 <!DOCTYPE html> <html lang="ja"> <head> <meta cha

  2. JavaScriptでHTMLのdiv要素内のテキストを一括置換する方法

    Webページ上の複数の要素に対して、特定のテキストをまとめて差し替えたいケースはよくあります。たとえば、見出し(h2タグなど)に入っている文字列を、ページ内のすべてのspan要素に反映させたい場合などが該当します。 このような処理を実現するには、document.querySelectorAll() を使用します。あわせて getElementsByClassName() を組み合わせることで、クラス名を指定して対象のテキストを取得できます。 実装のポイント document.querySelectorAll(.my-main-div-class span) で、親要素(div)の中にあるす