플래그(flags)
는 정규표현식의 옵션으로 정규식으로 검색하려는 문자 패턴에 추가적인 옵션을 넣어 원하는 문자 검색 결과를 반환하도록 합니다.
플래그 | 설명 |
---|---|
g | 모든 문자 일치(global) |
i | 영어 대소문자를 구분 않고 일치(ignore case) |
m | 여러 줄 일치(multi line) |
const str = `
010-1234-5678
the7632@gmail.com
http://www.omdbapi.com/?apikey=2181d79b&s=frozen
The quick brown fox jumps over the lazy dog.
abbcccdddd
`
const regexp1 = /the/
console.log(str.match(regexp1)) // 값: "the", index: 15
const regexp2 = /the/g
console.log(str.match(regexp2)) // 값: (2) ["the", "the"]
const regexp3 = /the/gi
console.log(str.match(regexp2)) // 값: (3) ["the", "The", "the"]
console.log(str.match(/the/gi)) // 값: (3) ["the", "The", "the"]
\(백슬래시)
기호를 통해 본래의 기능에서 벗어나 상태가 바뀌는 문자를 말합니다. 이를 통해, 정규표현식 내에서 특정한 기능으로 활용되는 기호를 문자로 해석되도록 합니다.
const str = `
010-5484-7632
the7632@gmail.com
http://www.omdbapi.com/?apikey=2181d79b&s=frozen
The quick brown fox jumps over the lazy dog.
abbcccdddd
`
console.log(str.match(/\./gi)) // 값: (4)
// str 데이터 내에서 .(dot) 사용에 대한 정보를 검색하고 싶으나,
// .(dot)은 정규식 내에서 특정한 기능으로 활용되므로 앞에 \(백슬래시)를 추가하여 검색함
console.log(str.match(/\.$/gim)) // 값: "."
// .(dot) 뒤의 $는 $ 앞에 적힌 하나의 단어가 포함되는 문장에서 끝나는 부분을 일치시키는 기호
// 또한, 뒤에 플래그도 gim을 입력하여 여러 줄을 일치시켰으므로 4번째 줄의 .(dot)이 검색됨
console.log(str.match(/\.$/gi)) // 값: null
// 이번에는 플래그 중 m을 제거하여 여러 줄을 검색하지 않으므로
// 가장 마지막 줄인 aabb로 시작하는 다음 줄에서 검색을 실행했으나 .(dot)이 없으므로 null이 반환됨