728x90
사용자 삽입 이미지

출처 : addedbytes.com


728x90
728x90

var str = "한글 <!-- 주석 --> <script type="text/javascript">window.alert('hellow')<\/script>";
 str += "<style type='text/css> td {font-size:9pt;}<\/style>";
 str += "<br /> <h3>Hellow Blog</h3>";


//태그제거
var RegExpTag = "<[^<|>]*>";
str = str.replace(RegExpTag,"");
//result : 한글 window.a lert('hellow'); td {font-size:9pt;} Hellow Blog


//스크립트 제거
var RegExpJS = "<script[^>]*>(.*?)</script>";
str = str.replace(RegExpJS,"");
//result : 한글 <!-- 주석 -->  <br> <h3>Hellow Blog</h3>


//스타일 제거
var RegExpCSS = "<style[^>]*>(.*?)";
str = str.replace(RegExpCSS,"");
//result : 한글 <!-- 주석 --> <script type="text/javascript">window.a lert('hellow');</script><br></style[^><h3>Hellow Blog</h3>


//한글 제거
var RegExpHG = "[ㄱ-ㅎ가-힣]";
str = str.replace(RegExpHG,"");
//result : <!-- 주석 --> <script type="text/javascript">window.a lert('hellow');</script><br><h3>Hellow Blog</h3>


//주석 제거
var RegExpDS = /<!--[^>](.*?)-->/g;
str6 = str.replace(RegExpDS,"");
//result : 한글 <script type="text/javascript">window.a lert('hellow');</script><br><h3>Hellow Blog</h3>


출처 : http://blueb.net/blog/1174
728x90
728x90

자주 사용되는 패턴매칭

. 개행문자를 제외한 모든 문자
\n 개행문자
* 0혹은 그 이상의 일치
+ 한번 혹은 그 이상의 일치
? 0혹은 한번의 일치
^ 라인의 처음에서 일치
$ 라인의 끝에서 일치
a|b a 또는 b
(ab)+ ab와 하나이상 일치
[] 문자 클래스의 지정


패턴매칭의 사용 예

표현 매칭
abc abc
abc* ab abc abcc abccc ...
a(bc)+ abc abcbc abcbcbc ...
a(bc)? a abc
[abc] a b c
[a-z] a에서 z까지
[a\-z] a, -, z 중 하나
[a\-z] a, -, z 중 하나
[-az] -, a, z 중 하나
[a-zA-Z0-9]+ 하나이상의 모든 영문자와 숫자
[\t\n]+ whitespace 문자
[^ab] a와 b를 제외한 모든
[a^b] a, ^, b 중 하나
[a|b] a, |, b 중 하나

더 자세한 정보는 '여기' 에...
728x90

'Developer' 카테고리의 다른 글

Image Preview IE7  (3) 2008.05.13
14 Tab-Based Interface Techniques  (0) 2007.04.18
Online Converters  (0) 2007.04.10
728x90
function checkEmail(strEmail) {
    var arrMatch = strEmail.match(/^(\".*\"|[A-Za-z0-9_-]([A-Za-z0-9_-]|[\+\.])*)@(\[\d{1,3}(\.\d{1,3}){3}]|[A-Za-z0-9][A-Za-z0-9_-]*(\.[A-Za-z0-9][A-Za-z0-9_-]*)+)$/);
    if (arrMatch == null) {
        return false;
    }

 

    var arrIP = arrMatch[2].match(/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/);
    if (arrIP != null) {
        for (var i = 1; i <= 4; i++) {
            if (arrIP[i] > 255) {
                return false;
            }
        }
    }
    return true;
}
728x90
728x90
function isASCII($str)
{
    if( preg_match('/^[\\x{00}-\\x{7F}]+$/u', $str) ){
       return true;
    }else{
       return false;
    }
}



표현식중 뒤에 나오는 패턴 변경자 u 는 패턴 문자열을 UTF-8으로 취급한다.
아래 보다 자세한 패턴 변경자를 참고!!

ASCII CODE TABLE 참고

바이너리 제로 문자(0x00)는 목표 문자열에서는 지원하지만, 패턴 문자열에서는 허용하지 않습니다. 패턴은 제로로 종료하는 보통의 C 문자열로 처리하기 때문입니다. 패턴에서 바이너리 제로를 표현하기 위해서는 이스케이프 시퀀스 "\\x00"로 사용할 수 있습니다.



패턴 변경자(Pattern Modifiers)

패턴 변경자 -- 정규표현식 패턴에 존재하는 변경자의 설명

Description

아래 목록은 현재 존재하는 PCRE 변경자입니다.
괄호 안의 이름은 각 변경자에 대한 PCRE 내부의 이름입니다.

i (PCRE_CASELESS)

이 변경자를 지정하면, 패턴의 문자는 대문자와 소문자를 구별하지 않습니다.

m (PCRE_MULTILINE)

기본적으로, PCRE는 주어진 문자열을 하나의 "줄"로 취급합니다. (실제로 몇개의 라인을 가지더라도) "줄 시작" 메타문자(^)는 문자열의 처음만을 인식하며, "줄 끝" 메타문자($)는 문자열의 끝이나 (D 변경자가 지정되지 않는 한) 마지막 뉴라인의 직전만을 인식합니다. 이는 펄과 같습니다.

이 변경자를 지정하면, "줄 시작"과 "줄 끝"은 주어진 문자열의 모든 뉴라인 직후와 직전을 인식합니다. respectively, as well as at the very start and end. 이는 펄의 /m 변경자와 동일합니다. 주어진 문자열에 "\n" 문자가 존재하지 않거나 ^나 $ 패턴이 일어나지 않으면 이 변경자는 아무런 효과가 없습니다.

s (PCRE_DOTALL)

이 변경자가 지정되면, 패턴의 점 메타문자는 뉴라인을 포함하는 모든 문자를 인식합니다. 지정하지 않으면, 뉴라인은 제외됩니다. 이 변경자는 펄의 /s 변경자와 동일합니다. [^a]와 같은 부정클래스는 이 변경자에 관계 없이 항상 뉴라인 문자를 포함합니다.

x (PCRE_EXTENDED)

이 변경자가 지정되면, 공백 문자는 이스케이프 되거나 문자 클래스 안에 있을 경우를 제외하고, 완전히 무시합니다. 문자 클래스 밖에서 이스케이프 되지 않은 # 사이와 뉴라인 문자 다음의 문자도 무시합니다. 이는 펄의 /x 변경자와 같고, 복잡한 패턴 안에 코멘트를 사용할 수 있게 합니다. 그러나 이는 데이터 문자에만 해당하는 점에 주의하십시오. 공백 문자는 패턴의 특별한 문자 시퀀스 안에는 존재할 수 없습니다. 예를 들면, 조건 서브 패턴을 나타내는 (?( 시퀀스에는 나와서는 안됩니다.

e

이 변경자를 지정하면, preg_replace()는 변경할 문자열을 PHP 코드로 처리하고, 그 결과를 검색된 문자열의 이용하여 일반적인 치환을 합니다.

preg_replace()만 이 변경자를 사용합니다; 다른 PCRE 함수는 무시합니다.

참고: 이 변경자는 PHP 3에서는 사용할 수 없습니다.

A (PCRE_ANCHORED)

이 변경자를 지정하면, 패턴을 강제적으로 "고정"합니다. 이는 ("주어진 문자열"에서) 검색된 문자열의 시작에만 매치도록 강제합니다. 패턴 자체에서 특정한 구조를 가지게 하는, 펄에서는 유일한 방법으로 같은 효과를 얻을 수 있습니다.

D (PCRE_DOLLAR_ENDONLY)

이 변경자가 설정되면, 패턴의 달러($) 메타문자는 주어진 문자열의 마지막에만 대응합니다. 이 변경자 없이는, 달러는 마지막 문자가 뉴라인일 경우에는 바로 직전의 문자에도 매칭합니다. (마지막이 아닌 뉴라인은 제외합니다) 이 변경자는 m 변경자가 지정되었을때는 무시됩니다. 펄에는 이 변경자가 존재하지 않습니다.

S

패턴이 여러번 이용되면, 매칭에 걸리는 시간을 절약하기 위해서 분석에 더 많은 시간을 들일 가치가 있습니다. 이 변경자를 지정하면, 추가 분석을 행합니다. 현 시점에서, 패턴의 분석은 하나의 고정된 시작 문자를 가지지 않는 비고정 패턴에만 유용합니다.

U (PCRE_UNGREEDY)

이 변경자는 수량 지시의 "greediness"를 뒤집습니다. 그리하여 기본값으로 not greedy하게 합니다. 하지만 "?"가 붙으면 greedy하게 됩니다. 이는 펄과 호환되지 않습니다. 패턴 안에서 (?U) 변경자 설정으로 지정할 수 있습니다.

X (PCRE_EXTRA)

이 변경자는 펄과 호환되지 않는 PCRE의 추가 기능을 사용하게 합니다. 패턴의 문자와 결합된 백슬래쉬가 특별한 의미를 지니지 않을 경우에 에러를 발생시켜서, 차후에 추가 기능을 위해 예약해둡니다. 기본적으로 펄은, 문자와 결합된 백슬래쉬가 특별한 의미를 지니지 않을 경우에는 글자로 취급합니다. 이 변경자는 다른 기능을 제어하지 않습니다.

u (PCRE_UTF8)

이 변경자는 펄과 호환되지 않는 PCRE의 추가 기능을 사용하게 합니다. 패턴 문자열을 UTF-8으로 취급합니다. 유닉스에서는 PHP 4.1.0부터, win32에서는 PHP 4.2.3부터 사용할 수 있습니다.

728x90

'Developer > JavaScript' 카테고리의 다른 글

javascript cookie  (0) 2007.05.02
자바스크립트 단축키 핸들러 - shortcuts.js  (0) 2007.04.20
Prototype base multi-Selection API  (0) 2007.04.18

+ Recent posts