플래그
특수 문자
^
특정 단어로 시작하는지 검사
// 'http'로 시작하는지 검사
const regex = /^http/
console.log(regex.test('http://test.com')) // true
console.log(regex.test('010-1234-5678')) // false
$
특정 단어로 끝나는지 검사
// 'html'로 시작하는지 검사
const regex = /html$/
console.log(regex.test('index.html')) // true
console.log(regex.test(test.mp4)) // false
*
앞의 표현식이 0회 이상 연속으로 반복되는 부분과 대응
const regex = /hi*/
console.log(regex.test('h')) // true
console.log(regex.test('hiiiii')) // true
console.log(regex.test('good bye')) // false
+
앞의 표현식이 1회 이상 연속으로 반복되는 부분과 대응
const regex = /hi+/
console.log(regex.test('h')) // false
console.log(regex.test('hiiiii')) // true
console.log(regex.test('good bye')) // false
?
앞의 표현식이 0 또는 1회 등장하는 부분과 대응
const regex = /hi?/
console.log(regex.test('h')) // true
console.log(regex.test('hi')) // true
console.log(regex.test('good bye')) // false
.
개행 문자를 제외한 모든 단일 문자와 대응
const regex = /.oy/
console.log(regex.test('boy')) // true
console.log(regex.test('qo')) // false
console.log(regex.test('oysho')) // false
(x)
'x'에 대응되는것을 capture, capture된값은 exec나 match methods가 return하는 배열에 포함됨
const regex = /^(good).+/
console.log(regex.exec('goodbye')) // ["goodbye", "good"]
console.log(regex.exec('goo')) // null
x(?=y)
오직 'y'가 뒤따라오는 'x'에만 대응
const regex = /good(?=bye)/
console.log(regex.test('goodbye')) // true
console.log(regex.test('good')) // false
console.log(regex.test('bye')) // false
x(?!y)
오직 'y'가 뒤따라오지 않는 'x'에만 대응
const regex = /good(?!bye)/
console.log(regex.test('goodbye')) // false
console.log(regex.test('good')) // true
console.log(regex.test('bye')) // false
x|y
'x' 또는 'y'에 대응
const regex = /bye|hello/
console.log(regex.test('bye')) // true
console.log(regex.test('hello')) // true
console.log(regex.test('good night')) // false
{n}
앞 표현식이 n번 나타나는 부분에 대응, n은 반드시 양의 정수여야함
const regex = /hello{2}/
console.log(regex.test('hellohello')) // true
console.log(regex.test('hello')) // false
{n,m}
앞 표현식이 n번 이상 나타나고 m번 이하 나타나는 부분에 대응, n, m은 반드시 양의 정수여야함
const regex = /hello{1,2}/
console.log(regex.test('hellohello')) // true
console.log(regex.test('hello')) // ture
[xyz]
괄호 안의 문자셋과 대응
const regex = /^[a-c]/ // /^[abc]/와 동일
console.log(regex.test('apple')) // true
console.log(regex.test('banana')) // ture
console.log(regex.test('melon')) // false
괄호 내부에 등장하지 않는 문자와 대응
const regex = /^[^a-c]/ // /^[^abc]/와 동일
console.log(regex.test('apple')) // false
console.log(regex.test('banana')) // false
console.log(regex.test('melon')) // true
괄호 내부에 등장하지 않는 문자와 대응
const regex = /^[^a-c]/ // /^[^abc]/와 동일
console.log(regex.test('apple')) // false
console.log(regex.test('banana')) // false
console.log(regex.test('melon')) // true
\b
다른 '단어 문자'(\w와 동일)가 앞이나 뒤에 등장하지 않는 위치에 대응
const regex = /moon\b/
console.log(regex.test('honeymoon')) // true
console.log(regex.test('moonster')) // false
console.log(regex.test('moon star')) // true
\d
숫자 문자에 대응. [0-9]와 동일
const regex = /\d/
console.log(regex.test('1')) // true
console.log(regex.test('1st')) // true
console.log(regex.test('first')) // false
\D
숫자 문자가 아닌 문자에 대응. 와 동일
const regex = /\d/
console.log(regex.test('1')) // false
console.log(regex.test('1st')) // true
console.log(regex.test('first')) // true
\s
스페이스, 탭, 폼피드, 줄 바꿈 문자등을 포함한 문자에 대응
const regex = /\s/
console.log(regex.test('firstGoal')) // false
console.log(regex.test('first goal')) // true
\S
스페이스, 탭, 폼피드, 줄 바꿈 문자등을 제외한 하나의 공백 문자에 대응
const regex = /\S/
console.log(regex.test(' ')) // false
console.log(regex.test('first goal')) // true
\w
밑줄 문자를 포함한 영숫자 문자에 대응. [A-Za-z0-9_] 와 동일
const regex = /\w/
console.log(regex.test('안녕하세요')) // false
console.log(regex.test('first')) // true
\W
단어 문자가 아닌 문자에 대응. 와 동일합니다.
const regex = /\W/
console.log(regex.test('안녕하세요')) // true
console.log(regex.test('first')) // false
Reference