728x90
정규 표현식
정규표현식 개체는 정해진 문자의 패턴을 만들 때 사용합니다.
var reg = /Javascript/;
var reg = new RegExp('Javascript');
정규표현식 객체 주요 메서드
속성값 | 속성 설명 |
---|---|
test() | 정규표현식과 일치하는 문자열이 있으면 true,없으면 false를 반환합니다. |
var reg = /Javascript/; consloe.log(reg.test('Javascript')) // true consloe.log(reg.test('script')) // false |
|
match() |
a,b,c 중 문자 하나를 검색합니다. 정규표현식과 일치하는 문자열을 배열로 만듭니다. 일치하는 문자열이 없으면 null을 반환합니다. |
var reg = /Javascript/; str = 'Java script'; consloe.log(reg.match('script')) // null |
정규표현식 객체 플래그
플래그 | 설명 |
---|---|
i | 대소문자 구분 없이 정규표현식과 문자열을 비교합니다. |
ar 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'은 행 바꿈을 의미합니다. |
정규식 패턴
패턴 | 설명 |
---|---|
abc | abc 문자열을 검색합니다. /abc/는 'abc' |
[abc] | a,b,c 중 문자 하나를 검색합니다. /[abc]d/는 'ad', 'bd', 'cd' |
[^abc] | a,b,c를 제외한 문자 하나를 검색합니다. /[^abc]/는 'ed','fd,'gd' |
[A-Z] | 알파벳 대문자 문자를 검색합니다. |
[a-z] | 알파벳 소문자 문자를 검색합니다. |
[0-9] | 0-까지의 숫자를 검색합니다. |
. | 하나의 문자를 검새합니다. 만약 '마침표' 문자 그대로의 의미를 사용할 경우 '₩'으로 표현해야 합니다. |
\w | 알파벳, 숫자, _를 검색합니다. |
\W | 알파벳, 숫자, _를 제외하고 검색합니다. |
\d | 숫자를 검색합니다. |
\D | 숫자를 제외하고 검색합니다. |
\s | 하나의 공백을 검색합니다. |
\S | 공백 제외하고 검색합니다. |
^ | 행의 첫 문자가 일치해야 함을 의미합니다. |
$ | 행의 끝 문자가 일치해야 함을 의미합니다. |
* | * 앞의 문자가 0번 이상 반복을 의미합니다. /a*b/는 'b', 'ab', 'aab', 'aaa...b' |
+ | + 앞의 문자가 1번 이상 반복을 의미 합니다. /a+b/는 'ab', 'aab', 'aaab', 'aaa...b' |
? | ? 앞의 문자가 0번 또는 1번 의미합니다. /a?b/는 'b', 'ab' |
{} | /₩{3}/은 숫자 3개를 의미합니다 /₩{3,5}/은 숫자 3~5개를 의미합니다 /₩{3,}/은 숫자 3개 이상을 의미합니다 |
a|b | a or b를 의미합니다 |
( abc ) | 그룹화를 의미합니다. |
let hpReg = /^\d{10,11}$/;
let emailReg = /^[A-Za-z0-9!#$%^&*_-]+@[A-Za-z0-9_-]+(\.[A-Za-z0-9_-]+){1,2}$/;
let hp1 = '010123456';
let hp2 = '01012345678';
let email1 = 'abc&1_23&A-BC@icox';
let email2 = 'abc&1_23&A-BC@icox.com';
let email3 = 'abc&1_23&A-BC@icox.co.kr';
let 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));
결과 확인하기
정규표현식 풀이
\d{10,11} \d는 숫자을 의미하고 {10,11}는 10자~11자를 의미합니다. [A-Za-z0-9!#$%^&*_-] 이메일 아이디 부분에 해당하며 영문, 숫자 특수문자 중 하나의 문자를 의미합니다. [A-Za-z0-9!#$%^&*_-]+ 이메일 아이디는 영문, 수자, 특수문자 중 하나의 문자가 1번 이상 반복해서 나와야 하기 때문에 +패턴을 추가합니다. [A-Za-z0-9!#$%^&*_-]+@ 이메일의 '이메일 아이디@' 패턴을 만듭니다. [A-Za-z0-9!#$%^&*_-]+@[A-Za-z0-9_-]+ 이메일 주소 앞부분에 해당하며 영문, 숫자, 특수문자 중 하나의 문자가 1번 이상 반복해서 올 수 있습니다. '이메일 아이디@이메일 앞 주소' [A-Za-z0-9!#$%^&*_-]+@[A-Za-z0-9_-]+(\.[A-Za-z0-9_-]+){1,2} 이메일 주소 나머지 부분에 해당하면 '.나머지 주소'가 1번~2번 올 수 있습니다. '이메일 아이디@이메일 앞 주소.나머지 주소' 또는 '이메일 아이디@이메일 앞 주소.나머지 주소.나머지 주소'
728x90
반응형
'JavaScript' 카테고리의 다른 글
indexOf() | lastindexOf() (8) | 2022.08.16 |
---|---|
slice() | substring() | substr() (7) | 2022.08.16 |
내장 함수 (4) | 2022.08.15 |
Array 의 메서드 join( ) | push( ) | pop( ) (13) | 2022.08.11 |
요소 선택 (8) | 2022.08.07 |
댓글