RegExp オブジェクト - Javascript

正規表現とは?

正規表現(regular expression)を使うと指定したパターンに一致しているかどうか調べることができます。

RegExpオブジェクトは、「 RegExpコンストラクタ 」か「 正規表現リテラル 」で生成できます。

let reg = new RegExp("abc");
let reg = /abc/;

メタ文字

下の文字は、正規表現では特別な意味をもつ「 メタ文字 」です。

^ $ \ . * + ? ( ) [ ] { } |

メタ文字を正規表現のパターンの中で文字そのものとして扱いたい場合は、頭にバックスラッシュをつけてエスケープします。

メタ文字以外で、エスケープが必要な文字として、/ があります。

testメソッド

正規表現に文字列がマッチするかどうかを論理値で返します。

et reg = /javascript/;
console.log(reg.test("javascript")); // true
console.log(reg.test("Javascript")); // false
console.log(reg.test("hello, javascript")); //true

execメソッド

文字列を検索して、マッチした文字列を配列で返します。

マッチした文字列がない場合は、「 null 」を返します。

let reg = /script/;

let result = reg.exec("javascript");
console.log(result);

let result2 = reg.exec("Javascript");
console.log(result2);

let result3 = reg.exec("python Javascript javascript");
console.log(result3);
console.log(result3[0]);
console.log(result3.index);

replace

第1引数に指定された正規表現にマッチする文字列を検索し、第2引数に指定された文字列で置き換えし、置き換えた文字列を返します。

g フラグが指定されていなければ、最初にマッチした文字列だけを返します。

const txt = "javascript html css python java c c# c++";
console.log(txt.replace(/javascript/, "JavaScript")); // JavaScript html css python java c c# c++
console.log(txt.replace(/c/g, "C")); // javasCript html Css python java C C# C++

match

第1引数に指定した正規表現にマッチした部分を順番に配列に格納して返します。

const txt = "list1 list2 list3";
console.log(txt.match(/\d/g));