본문 바로가기

Programing/javascript

javscript 정규표현식(Regular Expression)

정규표현식(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