
정규 표현식은 문자열에 나타나는 특정 문자 조합과 대응시키기 위해 사용되는 패턴이다. 자바스크립트에서는 모든게 객체이듯이 정규 표현식 역시 객체다. 정규식은 RegExp 객체를 이용해서 사용할 수도 있는데, RegExp의 exec, test, String의 match, replace, search, split등과 사용된다.
/ab*c/와 같은 정규식 표현이 있다면, a로 시작해서 c로 끝나는 문자중에 사이에 0개 이상의 b문자를 가진 문자열이라고 생각하면된다. * 문자는 바로 앞에 있는 문자가 0개 이상이다라는 의미를 가지고 있기 때문이다. 예를 들어, ac, abc, abbc, abbbc와 같은 문자들이 모두 위의 패턴에 해당된다. 이를 통해서 특수문자로 표현되는 정규식들을 알아보자.
특수 문자가 아닌 문자 앞에서 사용된 백슬래시는 '해당 문자는 특별하고, 문자 그대로 해석되면 안된다.'라는 의미로 해석된다. 예를 들어 \가 없는 'b'는 보통 소문자 b가 나오는 패턴과 대응되지만, '\b'자체는 어떤 문자와도 대응되지 않는다. \b 나중에 알아보도록 하자. 기본적으로 특수한 기능을 수행하기 위해 만들어진 단어들 앞에 넣는 것이 \(백슬래시)다.
입력의 시작 부분에 대응되는 문자. 만약 다중행 플래그가 참으로 설정되어 있다면 줄 바꿈 문자 바로 다음 부분과 대응된다. 예를 들어 /^A/는 'an A'의 'A'와 대응되지 않는다. 그러나 'An E'의 'A'와는 대응된다.
입력의 끝 부분과 대응된다. 만약 다중행 플래그가 참으로 설정되어 있다면, 줄 바꿈 문자의 바로 앞 부분과도 대응된다. 예를 들어, /t$/는 'eater'의 't'에는 대응 안되지만, 'eat'에는 대응된다.
앞의 표현식이 0회 이상 연속으로 반복되는 부분과 대응됩니다. {0,}과 같은 의미다. 예를 들어, /bo*/는 'A ghost booooed'의 'boooo'와 대응되고, 'A bird warbled'의 'b'에 대응되지만 'A goat grunted'내의 어느 부분과도 대응되지 않습니다.
앞의 표현식이 0 또는 1회 등장하는