var str=$("#mesgCont").val();
//스크립트/스타일 제거 
var RegExpJS = new RegExp("(<script[^>]*>(.|[\\s\\r\\n])*<"+"/script>|<style[^>]*>(.|[\\s\\r\\n])*<"+"/style>)", "gim");
str = str.replace(RegExpJS,"");   
//태그 제외 
var RegExpTag = new RegExp("<[^<|>]*>", "gim");  
str = reqlaceAll(str, RegExpTag, "");
//주석 제거   
var RegExpDS = /<!--[^>](.*?)-->/g;   
str = str.replace(RegExpDS,"");   

function reqlaceAll(str, reg, rep){
var strOld = str;
while(true){
str = str.replace(reg, rep);
if(strOld == str) break;
strOld = str;
}
return str;
}


언어마다 정규식 표현방식이 다르다.

특히 Javascript의 경우, RegExp라는 function을 사용하여 만든다. ( 물론 사용하지 않고도 만들 수 있다. 하지만 Syntax Error 를 경험하게 될것이다.)

기본적인 문법은 다음과 같다.

1
2
3
4
5
6
7
8
9
10
/**
 * 1.권장하는 방법..
 **/
var regExp = new RegExp(pattern,modifiers);
 
//또는.
/**
 * 2.같은 정규식을 만들더라도..Syntax Error가 많이 발생하는 것을 경험했다.
 **/
var regExp = /pattern/modifiers;


1번방법을 이용하여, 주석을 제거하는 정규식을 만들어 보겠다.("//" 에 해당하는 주석만 삭제된다.)



1
2
3
4
5
6
7
8
9
10
11
/**
 * "//"로 시작하고, "\n"(줄바꿈)으로 끝나는 글자(문장?)를 찾는다.
 * modifier로 gm 을 지정. g 는 global(전체검색), m은 multiline(여러줄 찾기)
 */
var regExp = new RegExp("//.*\n""gm");
/**
 * 그리고 제거하고자 하는 String value의 replace를 사용하면된다.
 * trim은 양 끝의 공백, 줄바꿈 등을 제거하기 위해 사용.
 * str은 임의의 문자.
 */
str = str.replace(regExp, "").trim()

위의 코드대로 검색하면, "//"에 해당하는 주석은 모두 제거된다.

"/* */"도 제거하는 코드는 다음에....업데이트.,,