JavaScript 정규식에서 . 은 new line(\n)과 유니코드 캐릭터를 제외한 하나의 문자임.
그러므로 여러줄의 문자열에서 매칭되는 패턴을 지정할 때 일반적인 방법으로 하면 안됨.
원본문자열
head
<!--START-->
aaa
bbb
ccc
<!--END-->
ddd
eee
<!--START-->
fff
ggg
<!--END-->
foot
<!--START-->
aaa
bbb
ccc
<!--END-->
ddd
eee
<!--START-->
fff
ggg
<!--END-->
foot
<!--START-->부터 <!--END--> 사이의 문자열을 매칭시키고자 할 때,
아래처럼 해야 제대로 된 패턴매칭이 수행된다.
var s = 원본문자열;
var pattern = /<!--START-->(.|\n)*?<!--END-->/g
alert(s.replace(pattern, '--REPLACED--'));
var pattern = /<!--START-->(.|\n)*?<!--END-->/g
alert(s.replace(pattern, '--REPLACED--'));
'JavaScript' 카테고리의 다른 글
[JavaScript] 함수 인자 전달시 변수 범위 (0) | 2009.12.31 |
---|---|
[JavaScript] 시간 맞춰 돌아가는 롤링배너 (Rolling Banner) (0) | 2009.12.31 |
[JavaScript] \n 을 치환하기 (0) | 2009.09.18 |
[JavaScript] Minify, Beautify (0) | 2009.08.26 |
[JavaScript] 인쇄하고 창닫기 (0) | 2009.08.03 |