카테고리 없음

자바 스크립트 메타문자

최종군 2024. 8. 23. 12:57

 

 

* 메타문자를 이용하여 정규식으로 검색 조건으로 할 특정패턴을 설정한다 

문자열이 해당 정규식으로 설정한 특정 패턴에 만족하는지 test()를 통해 

검사하거나 replace()를 통해서 변경할 수 있다 

 

 <button onclick="metaCheck();">메타문자 확인</button>
    <div class="area" id="area2"></div>

 

 

function metaCheck() {
            const area2 = document.getElementById("area2");
            const str = "javascript jquery ajax";

 

 

시작을 의미하는 메타문자 : ^

 

/^j/;

j로 시작하는지 여부를 확인한다 

 

  const regexp1 = /^j/; // j로 시작하는가?
            area2.innerHTML += "regexp1 : " + regexp1 + "<br>";
            area2.innerHTML += "regexp1.test(str) : " + regexp1.test(str) + "<br>";

 

 

 

여러 문자들을 나열 : [/abc/]

 

a 또는 b 또는 c가 포함 되어 있는가? 

 const regexp2 = /[abc]/;
area2.innerHTML += "regexp3.test(str) : " + regexp3.test(str) + "<br>";

 

 

 const regexp3 = /x$/;
 area2.innerHTML += "regexp3.test(str) : " + regexp3.test(str) + "<br>";

 

끝을 의미하는 메타문자 : $

/x$/

x로 끝나는지 확인 

 

정규식.test(str)

 

 

j로 시작해서 x로 끝나는 

패턴 확인

 const regexp4 = /^jx$/;

 

     const regexp4 = /^jx$/;
            area2.innerHTML += "regexp4 : " + regexp4 + "<br>";
            area2.innerHTML += "regexp4.test('jx') : " + regexp4.test('jx') + "<br>";
            area2.innerHTML += "regexp4.test(str) : " + regexp4.test(str) + "<br>";

 

const str = "javascript jquery ajax";

 

str을 테스트 시 false가 발생한다 

 

/^j.x$/;

개행문자(\n)을 제외한 모든 문자(영문, 숫자, 한글, 특수문자) - 한글자  .

 

/^ : 문자열의 시작 

. : 임의의 한 글자를 나타냄 

이 위치에는 어떤 문자라도 하나 올 수 있다 공백도 포함이 된다 

 

매칭되는 문자열 예시 : 

jax 

jox

j[공백] x

j9x 숫자도 된다 

 

한글자 이상 : +

.+ 개행문자를 제외한 한 글자 이상 : 

  const regexp6 = /^j.+x$/;

 

.+ 

 

. 임의의 값 앞에 +를 배치함으로써 

앞의 패턴이 하나 이상 반복될 수 있음을 의미합니다 

 

 

 

= /^[0-9]+$/;

 

숫자로만 이루어진 조건 

 

 /^[ㄱ-ㅎㅏ-ㅣ가-힣]+$/;

 

[] 또는 

+ 하나이상

 

 

 


            // * Quiz : 사용자에게 이름을 입력받아서(prompt), 2글자 이상인 한글로만 이루어진 경우
            //          "안녕하세요 ~ 반갑습니다^^" 알림창을 띄워주고
            //          조건에 해당되지 않는 경우 "안녕히 가세요...;-;" 알림창을 띄워주세요.
            const name = prompt("이름을 입력하세요");

            const regexp9 = /^[가-힣]{2,}$/;

            if (regexp9.test(name)) {
                alert("안녕하세요~ 반갑습니다^^");
            } else {
                alert("안녕히 가세요...;-;");
            }
        }