はじめに
JavaScript入門講座の第九弾として、JavaScript 正規表現を初心者向きに解説、match、replace、search、split、testメソッドなどついて紹介します。
この記事を読むと次の疑問について知ることができます。
- 正規表現とは?
- 正規表現で使う主要な記号と意味とは?
- 正規表現で扱う主要なメソッドとは?
- matchメソッド
- replaceメソッド
- searchメソッド
- splitメソッド
- testメソッド
JavaScript入門講座(8)では、JavaScript オブジェクトを初心者向けに解説、追加、削除、コンストラクタ、new演算子などについて解説してきました。
ここでは、JavaScript 正規表現を初心者向きに解説、match、replace、search、split、testメソッドなどについて深堀していきます。
正規表現とは?
正規表現は、簡単に言うと文字列から特定のパターン(特定の組み合わせの文字列など)を見つけ出すための仕組みです。
これにより、プログラム中のある文字列だけを検索し、違う文字列と置換したりなどが行えるようになります。
Javascriptで正規表現を扱う際には、扱う文字列を正規表現で宣言をする必要があります。
その宣言の仕方には2通りの方法があります。
let str = /abf/; let str1 = new RegExp( "abf" ); console.log(str); console.log(str1); console.log(typeof str); console.log(typeof str1);
正規表現で使う主要な記号と意味
正規表現では、特殊な記号を用いて表現します。
それらの中で主要な記号(メタ文字)について表にまとめました。
記号 | 意味 | 正規表現の例 | マッチする例 |
. | 任意の一文字(改行を含まない)にマッチ | . | a 、Y 、g |
⁺ | 直前の文字が 1回以上 繰り返す場合にマッチ | ko+kei | kokei 、ko…kei |
⋆ | 直前の文字が 0回以上 繰り返す場合にマッチ | ko*kei | kkei 、ko…kei |
? | 直前の文字が 0個か1個 の場合にマッチ | ko?kei | kkei 、kokei |
{m, n} | 直前の文字が m 回以上、n 回以下の繰り返しにマッチ | x{3,4} | xxx 、xxxx |
| | いずれかの条件 (OR条件) | ab|cd | ab , cd |
[...] | 角括弧に含まれるいずれか1文字にマッチ | [xyz] | x 、 y、 z |
[^...] | 角括弧に含まれない1文字にマッチ | [^xyz] | a、 c 、p |
\w | アンダースコアを含む英数字の1文字にマッチ | [a-zA-Z_0-9] | a 、P、 8 |
\W | アンダースコアを含む英数字以外の1文字にマッチ | [^a-zA-Z_0-9] | =、 % , # |
\d | 数字の1文字にマッチ | [0-9] | 0、 5、 9 |
\D | 数字以外の1文字にマッチ | [^0-9] | a 、 R 、 _ |
\s | 空白文字(スペース、タブ、改行などが含まれます)にマッチ | [ \t\f\r\n] | " "、\t、 \r、\n |
\S | 空白文字以外にマッチ | [^ \t\f\r\n] | a 、T、 8 |
\t | タブ | \t | なし |
\r | CR(Carriage Return:0x0D) | \r | なし |
\n | LF(Line Feed:0x0A) | \n | なし |
正規表現で扱うメソッド
matchメソッド
正規表現でよく使われるメソッドで、優れた機能を持っています。
それでは、例を見てみましょう。
let str2 = "bsDabfPWk"; var str3 = new RegExp (/a.*W/) let result = str2.match(str3)[0]; console.log(result);
replaceメソッド
パターンにマッチした文字列を指定した文字で置き換えて、その結果の文字列を返します。
それでは、例を見てみましょう。
let result1 = str2.replace(str3,"WqeTbg") console.log(result1);
searchメソッド
正規表現のパターンにマッチした文字列の場所のインデックスを返します。
それでは、例を見てみましょう。
let result2 = str2.search(str3) console.log(result2);
splitメソッド
正規表現などで指定した区切り文字で分割して、配列で返します。
それでは、例を見てみましょう。
let str4 = "1th,2th,3th"; let result3 = str4.split(","); console.log(result3);; console.log(result3[1]);
testメソッド
正規表現のパターンにマッチしたかどうかの結果を真偽値、マッチしたら true、マッチしなければ false で返します。
文字列がパターンにマッチするかを判別したい場合に testメソッドを使います。
let result4 = str3.test(str2); console.log(result4); result4 = /\d/.test(str2); console.log(result4);
おわりに
如何だったでしょうか?
正規表現とは?、正規表現で使う主要な記号と意味とは?、正規表現で扱う主要なメソッドとは? 、matchメソッド、replaceメソッド、searchメソッド、splitメソッド、testメソッドなどについて紹介してきました。
この記事があなたにとって少しでもお役に立てればこれほど嬉しいことはありません。
以上です。
コメント