정규 표현식
정규 표현식, 또는 정규식은 문자열에서 특정 문자 조합을 찾기 위한 패턴입니다.
정규 표현식 객체 주요 패턴
패턴 | 설명 |
---|---|
abc | abc 문자열을 검색합니다. /abc/는 'abc' |
[abc] | a, b, c 중 문자 하나를 검색합니다. /[abc]d/는 'ad', 'bd', 'cd' |
[^abc] | a, b, c를 제외한 문자 하나를 검색합니다. /[^abc]d/는 'ed', 'fd', 'gd' |
[A-Z] | 알파벳 대문자 문자를 검색합니다. |
[a-a] | 알파벳 소문자 문자를 검색합니다. |
[0-9] | 0-9까지의 숫자를 검색합니다. |
. | 하나의 문자를 검색합니다. 만약 '마침표' 문자 그대로의 의미를 사용할 경우 '₩.'으로 표현해야 합니다. |
\w | 알파벳, 숫자, _를 검색합니다. |
\W | 알파벳, 숫자, _를 제외하고 검색합니다. |
\d | 숫자를 검색합니다. |
\D | 숫자를 제외하고 검색합니다. |
\s | 하나의 공백을 검색합니다. |
\S | 공백을 제외하고 검색합니다. |
^ | 행의 첫 문자가 일치해야 함을 의미합니다. |
$ | 행의 끝 문자가 일치해야 함을 의미합니다. |
* | * 앞의 문자가 0번 이상 반복을 의미합니다. /a*b/는 'b', 'ab', 'aab', 'aaab', 'aaa...b' |
+ | +앞의 문자가 1번 이상 반복을 의미합니다. /a+b/는 'ab', 'aab', 'aaab', 'aaa...b' |
? | ? 앞의 문자가 0번 또는 1번 의미합니다. /a?b/는 'b', 'ab' |
{} | /₩d{3}/은 숫자 3개를 의미합니다. /₩d{3,5}/은 숫자 3~5개를 의미합니다. /₩d{3,}/은 숫자 3개 이상을 의미합니다. |
a|b | a or b를 의미합니다. |
(abc) | 그룹화를 의미합니다. |
정규 표현식 객체 플래그
플래그 | 설명 |
---|---|
i | 대소문자 구분 없이 정규표현식과 문자열을 비교합니다. |
var reg1 = /javascript/; var reg2 = /javascript/i; var str = 'Javascript'; console.log(reg1.test(str)); // false console.log(reg2.test(str)); // true |
|
g | 문자열 전체를 정규표현식과 비교합니다. |
var reg1 = /a/; var reg2 = /a/g; var str = 'javascript'; console.log(str.match(reg1)); //['a'] console.log(str.match(reg2)); //['a','a'] |
|
m | 여러 행의 문자열을 정규표현식과 비교합니다 |
var reg1 = /^s/; var reg2 = /^s/m; var str = 'javascript₩nscrirpt'; console.log(str.match(reg1)); // null console.log(str.match(reg2)); // ['s'] '^s'는 행의 첫 번째 문자가 s로 시작하는 것을 의미하고 '₩n'은 행 바꿈을 의미합니다. |
예시
var hpReg = /^\d{10,11}$/;
var emailReg = /^[A-Za-z0-9!#$%^&*_-]+@[A-Za-z0-9_-]+(\.[A-Za-z0-9_-]+){1,2}$/;
var hp1 = '010123456';
var hp2 = '01012345678';
var email1 = 'abc&1_23&A-BC@icox';
var email2 = 'abc&1_23&A-BC@icox.com';
var email3 = 'abc&1_23&A-BC@icox.co.kr';
var email4 = 'abc&1_23&A-BC@icox.abc.co.kr';
console.log(hpReg.test(hp1));
console.log(hpReg.test(hp2));
console.log(emailReg.test(email1));
console.log(emailReg.test(email2));
console.log(emailReg.test(email3));
console.log(emailReg.test(email4));
결과
false
true
false
true
true
false
true
false
true
true
false
'Javascript' 카테고리의 다른 글
문자열 관련 메서드 (indexOf() / lastindexOf()) (10) | 2022.08.16 |
---|---|
문자열 관련 메서드 (slice(), susbstring(), substr()) (10) | 2022.08.16 |
내장 함수 (4) | 2022.08.13 |
배열 관련 메서드(join(), push(), pop()) (13) | 2022.08.11 |
요소 선택 메서드 (7) | 2022.08.06 |
댓글