정규식(Regular Expression)은 문자열에서 특정 패턴을 찾거나 검사할 때 사용하는 문법이다.
기본 형태
/패턴/옵션
예
/abc/
→ 문자열에서 "abc" 찾기
/a/
→ 문자열에서 "a" 찾기
/[abc]/
→ "a" 또는 "b" 또는 "c"
예
"bat".match(/[abc]/)
// "b"
/[a-z]/ // 소문자
/[A-Z]/ // 대문자
/[0-9]/ // 숫자
예
"hello1".match(/[0-9]/)
// "1"
\d
→ [0-9]와 동일
\D
\w
→ [A-Za-z0-9_]
\s
+
예
/a+/
→ "a", "aa", "aaa"
*
?
{3}
예
/\d{3}/
→ 숫자 3개
{2,5}
→ 2~5개
^
예
/^a/
→ a로 시작하는 문자열
$
예
/a$/
→ a로 끝나는 문자열
문자열 전체에서 찾기
/a/g
대소문자 구분 없이 찾기
/a/i
여러 줄 문자열에서 동작
패턴과 일치하는 문자열을 배열로 반환
"banana".match(/a/g)
// ["a","a","a"]
패턴이 존재하는지 true / false 반환
/a/.test("apple")
// true
패턴을 다른 문자열로 치환
"abc123".replace(/\d/g,"")
// "abc"
/\d/g
"abc123".replace(/\d/g,"")
// "abc"
/\d+/g
/[a-zA-Z]/g
n.toString(2).match(/1/g).length
예
10 -> "1010"
"1010".match(/1/g)
// ["1","1"]
length
// 2
[ ] 문자 집합
\d 숫자
+ 1개 이상
* 0개 이상
^ 시작
$ 끝
g 전체 검색