메소드
정규표현식을 다룬다.
-
test
일치 여부(Boolean)를 반환한다.
정규식.test(문자열)
const str = ` 010-1234-5678 thesoha@gmail.com https://soi-ha.github.io/ The quick brown fox jumps over the lazy dog. abbcccdddd ` const regexp = /fox/gi console.log(regexp.test(str)) // true
-
match
일치 문자열의 배열(Array)을 반환한다.
문자열.match(정규식)
-
replace
일치 문자열을 새로운 문자열로 대체하고 그 대체된 결과를 문자열(String)로 반환한다.
단, 원본 데이터는 손상시키지 않는다.문자열.replace(정규식,대체문자)
- 그냥 replace 사용으로 원본파일 변경 X
const str = ` 010-1234-5678 thesoha@gmail.com https://soi-ha.github.io/ The quick brown fox jumps over the lazy dog. abbcccdddd ` const regexp = /fox/gi console.log(str.replace(regexp, 'AAA')) // 010-1234-5678 // thesoha@gmail.com // https://soi-ha.github.io/ // The quick brown AAA jumps over the lazy dog. // abbcccdddd console.log(str) // 010-1234-5678 // thesoha@gmail.com // https://soi-ha.github.io/ // The quick brown fox jumps over the lazy dog. // abbcccdddd
- 원본파일 변경하는 방법
let str = ` 010-1234-5678 thesoha@gmail.com https://soi-ha.github.io/ The quick brown fox jumps over the lazy dog. abbcccdddd ` const regexp = /fox/gi str = str.replace(regexp, 'AAA') console.log(str) // 010-1234-5678 // thesoha@gmail.com // https://soi-ha.github.io/ // The quick brown AAA jumps over the lazy dog. // abbcccdddd
- 그냥 replace 사용으로 원본파일 변경 X
플래그(옵션)
const str = `
010-1234-5678
thesoha@gmail.com
https://soi-ha.github.io/
The quick brown fox jumps over the lazy dog.
abbcccdddd
`
-
g
global의 약어로, 찾고자 하는 모든 문자를 찾는다.
따라서, g 플래그를 붙이고 시작하는 경우가 많다.- g 플래그 X
const regexp = /the/ console.log(str.match(regexp)) // ['the', index: 15, input: '\n010-1234-5678\nthesoha@gmail.com\nhttps://soi-ha.gi…ck brown fox jumps over the lazy dog.\nabbcccdddd\n', groups: undefined]
- g 플래그 O
const regexp = /the/g console.log(str.match(regexp)) // (2) ['the', 'the']
- g 플래그 X
-
i
ignore case의 약어로, 영어의 대소문자를 구분하지 않고 검색하게 한다.
플래그 i를 붙이지 않는다면 영어의 대소문자를 구분하여 검색한다.- i 플래그 X
const regexp = /the/g console.log(str.match(regexp)) // (2) ['the', 'the']
- i 플래그 O
const regexp = /the/gi console.log(str.match(regexp)) //(3) ['the', 'The', 'the']
- i 플래그 X
-
m
multi line의 약어로, 특정한 문자 데이터 안에서 줄바꿈 처리가 되어져 있는 여러줄의 글자(문자)들을 고려하지 않고 검색한다.
즉, 쉽게 말하자면 원래는 문자 데이터의 맨 첫줄 시작과 맨 마지막줄 끝만을 보고 검색했다.
그러나, m 플래그를 사용함으로 문자 데이터 안에서 줄바꿈처리가 되어져있다면, 그 줄 하나하나의 처음과 끝, 처음과 끝을 찾아서 검색한다.기존 - 문자 데이터의 맨 처음과 끝만을 보고 검색한다.
m 플래그 - 문자 데이터의 한줄 한줄의 처음과 끝으로 검색한다.-
m 플래그 X
m이라는 플래그를 사용하지 않으면 str 데이터의 가장 끝부분에서 마침표를 찾으려고 한다.
하지만, 가장 마지막 줄 (7번째 라인 = 백틱이 있는 라인)에는 마침표가 없기 때문에 null이라는 값이 반환된다.console.log(str.match(/\.$/gi)) // null
-
m 플래그 O
m 플래그를 사용하면, 해당 데이터에서 마침표로 끝나는 줄을 찾아서 반환한다.
str 데이터에서 마침표로 끝나는 줄은 5번째 줄 (The quick …)console.log(str.match(/\.$/gim)) // ['.']
- 이스케이프 문자(Escape Character)
\
(백슬래시) 기호를 통해 본래의 기능에서 벗어나 상태가 바뀌는 문자를 말한다.
아래 예제에서 .(마침표)를 검색하고 싶을 때/./
으로 작성하면 안된다.
정규표현식에서 마침표 하나는 특정한 문자를 검색하는 패턴이다. 그렇기에, 마침표를 검색하고 싶다면\/.\
로 작성해야 한다.
이스케이프 문자는 모든 특수기호들이 사용가능한 것은 아니고 정규표현식에서 기능으로 해석이 되는 특수문자만 해당이 된다. $
의미
$
은 꼭 마침표 뒤쪽에 붙여야 한다.
$
앞에 있는 하나의 단어로 해당하는 줄이 끝나는 부분을 찾아서 끝나는 부분을 일치시킨다.
해당 예제에서 끝나는 부분은 abbcccdddd줄이 아닌 그 다음줄의 백틱(`)기호가 있는 줄이다.
-
Comments