블로그 내 검색

2011. 11. 14.

간단한 정규표현식 테스터

정규표현식을 본격적으로(?) 공부해보고자...
전에 본 http://rejex.heroku.com/ 에 감명받아 비슷하게 구현해보았다.
기능은 안드로메다급으로 뒤쳐지지만...

아래는 정규표현식에 많이 쓰이는 자바스크립트 특수문자.
(출처 - http://iamnotokay.tistory.com/26)
  • \f 폼피드
  • \r 캐리지리턴
  • \n 새줄
  • \t 일반 탭문자
  • \v 세로 탭문자
  • \0 NUL널문자
  • [\b] 백스페이스
  • \s 공백문자 (\f, \n, \r, \t, \v, \u00A0, \u2028, \u2029)
  • \S 공백이아닌문자
  • \w 알파벳문자,숫자,_ [a-zA-Z0-9_]
  • \W 알파벳문자,숫자,_가 아닌문자 [^a-zA-Z0-9_]).
  • \d 정수(short for [0-9]).
  • \D 정수가 아닌 문자 (short for [^0-9]).
  • \b 단어의 경계 공백,새줄.
  • \B 경계가 아닌문자.
  • \cX 컨트롤+문자 E.g: \cm matches control-M.
  • \xhh 핵사코드
  • \uhhhh 유니코드

문자열에는 검사할 문자열을, 정규표현식에는 / 을 제외한 문자열을 넣는다.
입력시마다 이벤트가 체크되어 매칭 여부를 검사한다.

정규표현식 검사기
문자열 입력

정규표현식 입력 test method 로 수행

결과

예외를 거의 고려하지 않고 급조한 것이라 브라우저에 따라 잘 동작하지 않을 수 있다.
사용된 소스는 다음과 같다.

(function() {
    var doc = window.document;
    var intervalId;
    var eleText = doc.getElementById("input_text");
    var eleReg = doc.getElementById("input_regxp");
    var eleResult = doc.getElementById("javarouka_check_textarea");
    var isMethod = doc.getElementById("reg_method");
            
    function createRegexp() {
        return reg = new RegExp(eleReg.value);
    }
    function strMatch() {
        if(!eleText.value || !eleReg.value) return;
        try {
            console.log();
            if(isMethod.checked) {
                eleResult.value = createRegexp().test(eleText.value);
            }
            else {
                eleResult.value = eleText.value.match(createRegexp());
            }
        }
        catch(e) { 
            eleResult.value = "오류!!!\n" + e.toString();
        }
    }
    function bindEvent() {
        eleText.onkeyup = strMatch;
        eleReg.onkeyup = strMatch;
        isMethod.onclick = strMatch;
    }
    bindEvent();
})();

댓글 1개: