正規表示
指定した条件に一致する複数の文字列を一つのパターンで表現する方法です。 JavaScript では正規表現もオブジェクトのひとつです。
正規表現オブジェクトとは正規表現で使用するパターンを定義することです。最初に正規表現リテラルを使って正規表現オブジェクトを作成する方法です。
/パターン/ /パターン/フラグ
正規表現のパターンを表す値をスラッシュ(/)で囲んで記述します。
フラグを設定する場合はスラッシュのあとに記述します。
サンプル
let regexp1 = /apple/; let regexp2 = /[a-zA-Z]{4}/;
一つ目の正規表現オブジェクトは 'apple' とマッチするパターンです。対象の文字列の中に 'apple' と同じ文字列が含まれていればこの正規表現とマッチします。
二つ目の正規表現オブジェクトは特別な意味を持つメタ文字を使って記述したパターンで、アルファベットで構成された 4 文字の文字列とマッチします。
フラグを設定する場合は、フラグを表す値を一つまたは複数記述します。
let regexp1 = /[a-z]{4}/i; let regexp2 = /[a-z]{4}/im;
一つ目の正規表現オブジェクトには i フラグを設定しており、二つ目の正規表現オブジェクトには i フラグと g フラグを設定しています。
【RegExpコントラスタを使う】
次に RegExp オブジェクトのコンストラクタを使用して正規表現オブジェクトを作成する方法です。
・書式
new RegExp(パターン[, フラグ])
1 番目の引数には正規表現リテラルを指定するか、パターンを表す値を文字列として記述します。
フラグを設定する場合は 2 番目の引数に一つまたは複数のフラグを文字列として記述します。
サンプル
let regexp1 = new RegExp(/lemon/); let regexp2 = new RegExp('lemon');
どちらも同じ正規表現オブジェクトを作成します。パターンを文字列として指定する場合はスラッシュ(/)で囲う必要はない点に注意してください。
フラグを設定する場合は次のように記述します。
let regexp1 = new RegExp(/lemon/, 'i'); let regexp2 = new RegExp('lemon', 'ig');
正規表現のパターンがあらかじめ決まっているのであれば基本的に正規表現リテラルを使って正規表現オブジェクトを作成するのがシンプルで分かりやすいかと思います。
パターンが決まっていない場合はパターンを文字列として指定できる RegExp コンストラクタを使います。
例文
let regexp1 = /movie/; let regexp2 = /driving/; let str = 'I like movies and sports' console.log(regexp1.test(str)); >> true console.log(regexp2.test(str)); >> false
RegExp オブジェクトのインスタンスメソッドである test は文字列が正規表現にマッチするかどうかを調べ論理値を返します。
正規表現オブジェクトを 2 つ作成し、対象となる文字列がそれぞれの正規表現オブジェクトとマッチするかどうかを調べました。
対象の文字列には 'movie' が含まれているので最初の正規表現にはマッチしましたが、対象の文字列には 'driving' は含まれていないので次の正規表現にはマッチしませんでした。
※コメント投稿者のブログIDはブログ作成者のみに通知されます