반응형
정규 표현식
문자열에 나타나는 특정 문자 조합과 매칭시키기 위해 사용하는 패턴
정규 표현식을 만드는 방법
1. 정규식 리터럴 사용
var regex = /a+b/;
슬래시로 감싸는 패턴으로 스크립트를 불러올 때 컴파일됨(정규식이 상수일 때 사용)
2. RegExp 객체의 생성자 함수 호출
var regex = new RegExp("a+b");
정규식이 실행 시점에 컴파일됨(정규식의 패턴이 변경될 수 있거나 / 사용자의 입력과 같은 다른 곳에서부터 패턴을 가져올 경우 사용)
정규 표현식 구성
1. 단순 패턴을 사용
/abc/
라는 패턴을 사용할 경우, abc라는 문자열을 정확하게 포함해야만 대응
aaaaabccccc // abc라는 전체 문자열이 있어 대응
cccccbaaaaa // abc라는 문자열을 포함하고 있지만 대응되지 않음
2. 특수 문자 사용
/ab*c/
라는 패턴을 사용할 경우, a뒤 0개 이상의 b와 바로 연달아 c가 나오는 문자열 대응
abbbbbbbbbbc // a 문자 뒤 0개 이상의 b, 연달아 나오는 c
※ 여러 특수문자
.
: 개행 문자를 제외한 모든 단일 문자와 대응
/.t/
패턴 사용
ot // 대응
pt // 대응
tie // 대응하지 않음
*
: 앞 표현식이 0회 이상 연속으로 반복되는 부분과 대응
/go*/
패턴 사용
goooooooo // goooooooo와 대응
greate // g와 대응
apple // 대응되지 않음
?
: 앞 표현식이 0회 또는 1회 나타나는 부분과 대응
/p?ri?/
패턴 사용
prague // pr과 대응
paris // ri와 대응
europe // r과 대응
\
\문자 : 해당 문자가 특별하기 때문에 문자 그대로 해석되면 안됨
\b
- 단어 경계에 대응
/\ba/ // apple에 대응(단어 경계에 있는 a에 대응)
/\bpp/ // apple에 대응하지 않음(경계에 있지 않음)
\특수문자 : 해당 문자는 특별하지 않고 문자 그대로 해석되어야 함
백슬래시가 없는 /b*/는 0개 이상의 b문자와 대응됨을 나타내지만, /b\*/
- b*문자열에 대응
b*c*d // b*에 대응
|
: 한쪽만 대응(혹은)
cream | tea 패턴 사용
cream cheese // cream과 대응
cup of tea // tea와 대응
$
: 입력 부분의 끝과 대응
/r$/
패턴 사용
enter // 문자열의 끝 r과 대응
rabbit // 대응되지 않음
'JavaScript' 카테고리의 다른 글
[JavaScript] onclick() 이벤트로 매개변수 전달 (0) | 2021.10.17 |
---|---|
[JavaScript] jQuery를 사용하지 않고 Vanilla Javascript로 모달 만들기 (0) | 2021.10.05 |
[JavaScript] click event 로 글자 색을 번갈아가며 변경하는 3가지 방법 (0) | 2021.09.13 |
[Spring] Eclipse Spring Legacy Project 세팅 (0) | 2021.09.06 |
[JavaScript] 프로토타입을 활용한 상속 (0) | 2021.09.05 |