정규표현식(Regular Expression)은 문자열에서 특정 내용을 찾거나 대체 또는 발췌하는데 사용한다.
플래그
Flag | Meaning | Description |
i | Ignore Case | 대소문자를 구별하지 않고 검색한다. |
g | Global | 문자열 내의 모든 패턴을 검색한다. |
m | Multi Line | 문자열의 행이 바뀌더라도 검색을 계속한다. |
reg | Description |
^ | 문자열의 시작 |
$ | 문자열의 종료 |
* | 앞에 문자가 없거나 0개이상인 경우 |
+ | 앞의 문자가 1개 이상인 경우 |
? | 앞의 문자가 없거나 1개 있는 경우 |
. | 임의의 한 문자 자리수를 표현하며, 개행문자를 제외한 모든 단일 문자와 대응 |
| | or 앞 또는 뒤 문자가 존재 |
[xy] | x와 y중 하나 |
{n,m} | 앞에 문자길이 최소n개 최대 m개 |
() | 그룹을 표현, 소괄호안의 문자를 하나의 문자로 인식한다 |
\s | 공백문자를 의미 |
\S | 공백문자가 아닌 것을 의미 |
\d | 숫자 = [0-9] |
\D | 숫자를 제외한 모든 문자 |
\w | 알파벳이나 숫자를 제외한 문자 |
(?!) | 대소문자를 구분하지 않는다 |
대소문자 구별 안하고 알파벳 추출
const targetStr = 'AA BB Aa Bb';
const regexr = /[A-Za-z]+/g;
console.log(targetStr.match(regexr));
숫자를 추출
const targetStr = 'AA BB Aa Bb 24,000';
const regexr = /[0-9]+/g;
console.log(targetStr.match(regexr)); //
특정단어로 시작하는지 검사
const url = 'http://example.com';
const regexr = /^http/;
console.log(regexr.test(url));
특정단어로 끝나는지 검사
const fileName = 'index.html';
const regexr = /html$/;
console.log(regexr.test(fileName));
숫자인지 검사
const targetStr = '12345';
const regexr = /^\d+$/;
console.log(regexr.test(targetStr));
공백으로 시작하는지 검사
const targetStr = ' Hi!';
const regexr = /^[\s]+/;
console.log(regexr.test(targetStr)); // true
아이디로 사용한지 검사(영문, 숫자만 6~15자리)
const id = 'joospace123';
const regexr = /^[A-Za-z0-9]{6,15}$/;
console.log(regexr.test(id));
메일 주소 형식 맞는지 검사
const email = 'joospace@gmail.com';
const regexr = /^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/;
console.log(regexr.test(email));
핸드폰 번호 형식 맞는지 검사
const cellphone = '010-1234-5678';
const regexr = /^\d{3}-\d{3,4}-\d{4}$/;
console.log(regexr.test(cellphone));
특수 문자 포함 여부 검사
const targetStr = 'abc#123';
let regexr = /[^A-Za-z0-9]/gi;
console.log(regexr.test(targetStr));
//동일
regexr = /[\{\}\[\]\/?.,;:|\)*~`!^\-_+<>@\#$%&\\\=\(\'\"]/gi;
console.log(regexr.test(targetStr));
// 특수 문자 제거
console.log(targetStr.replace(regexr, '')); // abc123
'Programing > javascript' 카테고리의 다른 글
[javascript] Spread Operator (0) | 2023.04.25 |
---|---|
[javascript] Template literals (0) | 2023.04.25 |
[javascript] this 키워드, arrow function (0) | 2023.04.20 |
[javascript] 기본 문법 (0) | 2023.04.19 |
javascript 360 파노라마 (pannellum) (0) | 2021.01.22 |