[TIL][JS]正規表現


正規表現


正規表現は、文字列内で特定のコンテンツを検索または抜粋するために使用されます.
複雑なコードの代わりに正規表現を使うのは簡単だが、可読性が悪い.

正規表現をサポートする方法

/*
RegExp.prototype.exec 
RegExp.prototype.test
String.prototype.match
String.prototype.replace
String.prototype.search
String.prototype.split
*/

ひょうしき


タグはオプションで、選択して使用できます.
あなたが望む条件で使えばいいです.
i(ignore case):検索で大文字と小文字を区別しない
g(グローバル):文字列全体を検索(重複していても検索)
m(複数行):文字のシリアル変更時に検索
let targetStr = 'Is this all there is?';

let regexr = /is/; //'is'를 소문자인경우 1개만 찾음

targetStr.match(regexr);

regexr = /is/ig; //소대문자 신경안쓰고 여러개 찾음

targetStr.match(regexr); //3개 모두 찾음

を選択します。


検索する文字列を入力しますが、引用符は含まれません.
// **. 은 임의의 문자를 의미한다.**

const regexr = /.../; //이는 임의의 문자 3개를 의미함.
**// + 는 앞의 패턴을 반복하고 싶으면 붙여준다.**
const targetStr = 'AA AAA BB Aa Bb';

const regexr = /A+/g;

targetStr.match(regexr);
//[ 'AA', 'AAA', 'A' ]
// | 는 or을 의미함
const targetStr = 'AA BB Aa Bb';

const regexr = /A|B/g;

targetStr.match(regexr);
//[ 'A', 'A', 'B', 'B', 'A', 'B' ]
// []안의 문자는 or로 동작한다.
const str = 'AA BB Aa Bb';

const regexr = /[AB]+/g; //A 니 B 반복되는 것 다 찾기

str.match(regexr); //[ 'AA', 'BB', 'A', 'B' ]
//범위지정 시 에는 [] 안에 -를 써준다.
const str = 'AA BB ZZ Aa Bb';

const regexr = /[A-Z]+/g;

str.match(regexr);
**// \d 는 숫자를 의미, \D 는 숫자가 아닌 문자열 의미**
const targetStr = 'AA BB Aa Bb 24,000';

// '0' ~ '9' 또는 ','가 한번 이상 반복되는 문자열을 반복 검색
let regexr = /[\d,]+/g;

console.log(targetStr.match(regexr)); // [ '24,000' ]

// '0' ~ '9'가 아닌 문자(숫자가 아닌 문자) 또는 ','가 한번 이상 반복되는 문자열을 반복 검색
regexr = /[\D,]+/g;

console.log(targetStr.match(regexr)); // [ 'AA BB Aa Bb ', ',' ]
**//\w는 알파벳과 숫자를 의미, \W는 알파벳과 숫자를 제외한 문자를 의미**
const targetStr = 'AA BB Aa Bb 24,000';

// 알파벳과 숫자 또는 ','가 한번 이상 반복되는 문자열을 반복 검색
let regexr = /[\w,]+/g;

console.log(targetStr.match(regexr)); // [ 'AA', 'BB', 'Aa', 'Bb', '24,000' ]

// 알파벳과 숫자가 아닌 문자 또는 ','가 한번 이상 반복되는 문자열을 반복 검색
regexr = /[\W,]+/g;

console.log(targetStr.match(regexr)); // [ ' ', ' ', ' ', ' ', ',' ]

常用正規表現

// ^ : 문자열의 처음을 의미
//http 로 시작하는지 검사

const url = "http://naver.com";

const regexr = /^http/;

regexr.test(url);
// $ : 문자열의 끝을 검사
//html로 끝나는지 검사

const str = 'index.html';

const regexr = /html$/;

regexr.test(str);
//문자열이 숫자로만 이루어졌는지 검사

const str = '12234434';

const regexr = /^\d+$/;

regexr.test(str);
//문자열의 첫 시작이 스페이스로 시작하는지 검사
//\s : 여러 가지 공백 문자 (스페이스, 탭 등) => [\t\r\n\v\f]

const str = ' hi!';

const regexr = /^\s+/;

regexr.test(str);
//유효한 아이디인지 검사
// {4,10} : 4 ~ 10자리

const id = 'abc123';

const regexr = /^[A-Za-z0-9]{4,10}$/;