正規表現


正規表現とは?


正規表現は、文字列内の特定の文字を検索するツールです.
=>特定の規則を持つ文字列からなる式

正規表現の使用


1.ソリッドパターン


正規表現規則を上書きするには、スラッシュ(/)を使用します.
スラッシュに入る文字列検索する文字列.
let pattern = /c/;

2.コンストラクション関数呼び出しモード


RegExpオブジェクトのコンストラクション関数を呼び出して使用
let pattern = new RegExp('c');

正規表現の組み込み方法


1.RegExpオブジェクトのメソッド


1. exec()


execはexecutionの略で、必要な情報を抽出するために使用されます.
検索するターゲットに検索する文字列の情報が含まれている場合は配列に戻り、検索する文字列がない場合はnullに戻ります.
let pattern = /c/; 
pattern.exec('coding') // ['c']

2. test()


検索する文字列をbooleanに戻して、ターゲットにあるかどうかを決定します.
let pattern = /c/; 
pattern.test('coding') // true

2.Stringオブジェクトの方法


1. match()


RegExp.exec()機能と同様に、正規表現をパラメータとして受け入れ、所与の文字列に一致する配列を返します.一致しない場合は、nullを返します.
let pattern = /c/;
let str = 'coding';
str.match(pattern); // ['c']

2. replace()


検索するターゲットを文字列で検索し、置換する文字列に変更し、変更した値を返します.
let pattern = /c/;
let str = 'coding';
str.replace(pattern, 'C'); // 'Coding'

3. split()


指定したパラメータを区切り記号として、文字列を部分文字列に分割し、結果を配列に返します.

4. search()


文字列が最初の一致部分文字列の位置(正規表現をパラメータとして)を返す/一致しない場合は、-1を返します.
"JavaScript".search(/script/); // -1 대소문자를 구분
"JavaScript".search(/Script/); // 4
"coding".search(/odi/); // 1

flag


正規表現ではタグを設定できます.タグは追加の検索オプションの役割です.
ロゴはそれぞれまたは一緒に使用できますが、順序は区別されません.

1. i


iを加えて大文字と小文字を区別しない.
let withi = /c/i;
let withouti = /c/;
"Coding".match(withi); // ['C']
"Coding".match(withouti); // null

2. g


globalの略語、gを加えて、すべての検索結果を返します.
let withg = /c/g;
let withoutg = /c/;
"coolcoding".match(withg); // ['c', 'c']
"coolcoding".match(withoutg); // ['c'] g 가 없으면 첫 번째 검색 결과만 반환

3. m


mを追加して複数行を検索
let str = `1st : cool
2nd : cod
3rd : ing`;
str.match(/c/gm)
// 3개의 행을 검색하여 모든 c 를 반환
// ['c', 'c']
str.match(/c/m)
// m은 다중행을 검색하게 해 주지만, g 를 빼고 검색하면 검색 대상을 찾는 순간 검색을 멈추기 때문에
// 첫 행의 ['c'] 만 리턴

せいそくアレイ


正規モード説明^行(行)の先頭からマッチング/^abc/$行(行)の末尾までマッチング/xyz$/.(特殊記号、スペースを含む)任意の文字a(bar)baまたはbを一致させ、まずインデックスの小さい*を返し、連続して0回以上繰り返される文字をできるだけ多く一致させる.と同じ*?連続して0回以上繰り返した文字とできるだけ少なく一致します.同じ+連続して1回以上繰り返した文字とできるだけ多く一致します.と同じ+?1回以上繰り返した文字とできるだけ少なく一致します.{0}と同じ3つの数字の連続一致{3,}3つ以上の連続一致{3,5}3つ以上の連続一致()キャプチャするグループ[A-z]aからzまでの文字領域マッチング(英語小文字)[A-Z]AからZまでの文字領域マッチング(英語大文字)[0-9]0から9までの文字領域マッチング(数字)(反スラッシュ)escape文字.特殊記号の前にを付けると、正規モードではなく、記号自体が認識するd数字が検索されます./[0-9]/とは異なる文字Dを検索します./[^0-9]/と同じw英語の大文字と小文字、数字、および(下線)を検索します.[A-Za-z 0-9]/と同じW非英語大文字小文字、数字、および(下線)文字を検索します.[^A-Za-z 0-9]/と同じ[^][]の文字列の前に^を書くと、[]にない文字が検索されます

文法の整理


Groups and ranges


Chrracterの意味欄(or演算子)または()グループ[]文字セット、括弧内の任意の文字[^]否定文字セット、括弧内の任意の非文(?:)で検索しますが、覚えていません.

Quantifiers


Chracterの意味は?なしまたは有(zero or one)*なしまたは有または多(zeroまたはmore)+1つまたは複数(oneまたはmore){n}n回反復{min,}最小{min,max}最小,最大

Boundary-type


Chracter意味b単語境界b単語境界^文の開始$文の終了ではありません

Character classes


漢字の意味特殊文字の文字ではありません.改行を含まない文字はどれですかddigt数字Ddigit数字word文字ではありませんwword文字ではありませんsspaceスペーススペースではありません

正規表現による検証


Eメール認証

let regExp = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;

携帯番号の確認

let regExp = /^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/;