「正規表現」の基本的な使い方をJavaScriptで理解する:JavaScript標準ライブラリの使い方超入門(5)(4/5 ページ)
JavaScriptの標準仕様としてビルトインされている主なオブジェクトの使い方を紹介する連載。今回は、正規表現について。Stringのsearch、match、replaceやRegExpのexecなどメソッドにおける文字列検索や置換の仕方、エスケープ文字や改行などのパターンマッチの基本を解説。
正規表現を利用した文字列の置き換え
「文字列の置き換えは、Stringオブジェクトのreplace()メソッドで行います。このメソッドは、正規表現のパターンにマッチした文字列を別の文字列に置き換えます。書き方は次のとおりです」
文字列の中からURLを検索してリンク付の文字列に書き換える
「では、文字列の中からURLを検索し、これをリンク付の文字列に書き換えてみることにしましょう」
「リンクの設定は、次のようにHTMLの<a>タグで設定すればいいですね」
「こんな感じでどうですか」
「たんに単語を置き換えるといったことなら、このような書き方になりますが、文字列を置き換えるときに同じURLを2回も書いているので、コードが長くなっていますね」
置き換え文字列の中にパターンマッチした文字列を埋め込む
「実は、書き換える文字列がパターンマッチした文字列を含んでいる場合は、もっと便利な方法があるんです」
「先にそれを言ってくださいよぉ」
「えーっとですね、まずは置き換えてみてからでないと内容がよく理解できなくなっちゃうんですよ。で、replace()メソッドは内部的にサブマッチ文字列を格納した特殊な変数を持っていて、$1から始まる変数名を指定することでパターンマッチした文字列を取り出すことができるようになっています。例えば、先の例の場合は、次のような値が格納されます」
変数名 | 格納されている値 | |
---|---|---|
$1 | http://www.newsite.example.com/ | |
$2 | undefined | |
$3 | example | |
$4 | / |
「へー、『$1』って書けば、抽出された文字列を取り出せるんですね」
「1つだけ重要な注意点があります。それは、パターン文字列全体を()で囲むという点です。これを付けることで、変数$1にパターンマッチした文字列全体が格納されるようになります。では、replace()メソッドの変数を使って、先のプログラムを書き換えてみましょうか」
「これで『$1』で文字列全体を取り出せるようにするには、あらかじめパターン文字列全体を()で囲めばいいんですね。では書き換えてみます」
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- JavaScriptプログラミングをdocument.writeやalertで始める際の基礎知識をパーフェクトに解説する
初めてJavaScriptのWebアプリを作ってみたいという人に向けて「Hello World!」などの文字列を表示する方法について解説する。 - JavaScriptを中心としたWebアプリ開発の栄枯盛衰まとめ――LiveScriptからAngularJS/React.jsまで
@ITが誕生した2000年頃はJavaScriptが不遇だった時代。そこから現在のような人気のプログラミング言語になるまでには、どのような歴史があったのか。15周年を迎えた@ITの豊富なWeb開発関連記事とともに振り返る。 - ようこそJavaScriptの世界へ
JavaScriptで本格的なプログラミングの世界に触れてみよう。連載を通じて実用的なアプリケーションを作れるようになるはず!?(編集部)