職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

JS--正規表示

2024年04月06日 | JavaScript

正規表示

【開発環境】
OS:Win11(64ビット)
VSCode1.72.2、
クロム
 
正規表示とは
指定した条件に一致する複数の文字列を一つのパターンで表現する方法です。 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' は含まれていないので次の正規表現にはマッチしませんでした。



 


コメント    この記事についてブログを書く
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« JS--例外をスローするには | トップ | JS--エスケープ処理 »
最新の画像もっと見る

コメントを投稿

JavaScript」カテゴリの最新記事