정규식 자체는 어느 언어나 동일하기 때문에 한번 익혀놓으면 편리하게 사용할 수 있지만, 이 정규식을 실행하는 함수나 메서드는 언어마다 모두 다르기 때문에 언어마다 모두 각각 기억해두어야 한다.
자바스크립트 역시 독자적인 방식이 존재한다.
정규식에 익숙한 사람이라면 아래 정도만 알면 충분히 자바스크립트에서도 정규식을 활용할 수 있을 것이다.
자바스크립트 정규식에서 Multiline을 제대로 지원하지 못하는 문제가 있는데, 예를들어 /<div>.*<\/div>/i 로 매칭을 시키고 싶어도 여러 줄에 걸쳐있으면 i flag 가 동작하지 않으며 . 에 리턴은 잡히지 않아 제대로 매칭이 되지 않는 문제이다. 이때는 아래와 같이 약간의 꼼수를 동원해야 한다.
자바스크립트 역시 독자적인 방식이 존재한다.
정규식에 익숙한 사람이라면 아래 정도만 알면 충분히 자바스크립트에서도 정규식을 활용할 수 있을 것이다.
var aaa = "korea.html"; aaa.replace(/(.+)\.html/,"\\$1"); //결과 : "\korea" aaa.replace(/(.+)\.html/,"$1"); //결과 : "korea" /.+\.html/.test(aaa); //결과 : true
자바스크립트 정규식에서 Multiline을 제대로 지원하지 못하는 문제가 있는데, 예를들어 /<div>.*<\/div>/i 로 매칭을 시키고 싶어도 여러 줄에 걸쳐있으면 i flag 가 동작하지 않으며 . 에 리턴은 잡히지 않아 제대로 매칭이 되지 않는 문제이다. 이때는 아래와 같이 약간의 꼼수를 동원해야 한다.
//여러 줄에 걸쳐 있는 내용을 매칭할 때, 아래는 동작하지 않는다. multilineString.replace(/<div>(.+)<\/div>/i, "$1"); //아래와 같이 해야한다. multilineString.replace(/<div>([\s\S]+)<\/div>/i, "$1");
자바스크립트의 정규식 문법에 대한 보다 정리된 글은 MDN(모질라 개발자 네트워크)의 문서에서 찾을 수 있다.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
정규식 패턴을 미리 테스트할 때는 아래 사이트를 사용하면 편리하다.