JS-正規表現
const reg1 = new RegExp('abc');
const reg2 = /abc/;
console.log(reg1);
console.log(reg2);
console.log(typeof reg1);
console.log(reg2 instanceof RegExp);
// # RegExpオブジェクトのメソッド
const reg3 = /def/;
console.log(reg3.test('abcdef')); // -> true
console.log(reg3.test('abcDef')); // -> false
console.log(reg3.exec('abcdef')); // -> ["def"]
console.log(reg3.exec('abcdef').index); // -> 3 最初にマッチした位置
console.log(reg3.exec('abcdef').input); // -> abcdef 対象の文字列
console.log(reg3.exec('abcdef')); // -> ["def"]
console.log(reg3.exec('abc')); // -> null
// # 文字クラス
/abc/ // 文字列のマッチ
/[abc]/ // 任意の1文字のマッチ a, b, c
/[123]/ // 任意の1文字のマッチ 1, 2, 3
/[a-z]/ // 範囲指定
/[a-z0-9]/
/[\u3041-\u3096]/ // Unicode指定 日本語のひらがな1文字
/<h[1-6]>/ // 文字列クラスとリテラル文字の組み合わせ
/[^0-9]/ // ^は否定 数字以外の1文字
// # 略記号
/./ // 改行以外の任意の1文字
/\d/ // digit 任意の数字1文字 /[0123456789]/
/\D/ // 数字以外の文字 /[^0123456789]/
/\w/ // 任意の英数字と_ /[a-zA-Z0-9_]/ word character
/\W/ // 英数字と_以外
/\s/ // 任意の空白文字(半角空白、タブ、改行)
/\S/ // 任意の空白文字(半角空白、タブ、改行)以外
// # 繰り返しパターン
/[a-z]{6,12}/ // 小文字アルファベットが6文字以上12文字以下繰り返す
/[a-z]{6,}/ // 直前の要素を6回以上繰り返す
/[a-z]{4}\d{3}/ // 直前の要素をn回繰り返す
/\d?/ // 直前の要素を0回か1回繰り返し
/\s+/ // 直前の要素を1回以上繰り返し
/\d*/ // 直前の要素を0回以上繰り返し
// # 位置指定
/^abc/ // 先頭
/abc$/ // 先頭