ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바스크립트 정규식 사용법
    JAVASCRIPT/Javascript 2022. 9. 14. 11:45

    정규식은 검색해서 필요한 것만 찾아서 사용하면 되지만

    모르고 사용하는 것은 에러에 대한 대응이 쉽지 않을 수 있기 때문에

    정규식이 어떻게 이루어졌는지 한번쯤은 파악해두고 필요할 때 검색해서 사용하는 것이 좋습니다.

     

    문자를 검사하는 가장 쉬운 방법에는 '문자'.includes('찾을 단어')가 있습니다.

    하지만 그 문자에

    • 한글이 있는지
    • 영어가 있는지
    • A로 끝나는지
    • 마침표 다음에 영어가 있는지
    • 등등...

    이런건 includes()만으로 검사하기 어렵습니다.

    이럴때 사용하는 것이 '정규식'을 이용한 test 검증입니다!

     

     

    정규표현식(regular expression)

    정규식 : 문자를 검사하고 싶을 때 사용하는 식

     

    자바스크립트로 정규식을 어떻게 표현하냐면

    /abc/

    이게 끝입니다.

    검색해서 찾아보는 정규식은 복잡하게 생겼다는 인상이 있는데 알고 보면 아주 쉽습니다.

    abc라는 단어가 있니?라고 물어볼 준비가 된 것입니다.

    만약 abcde라는 (문자)에 abc(찾을 단어)라는 단어가 있는지 검사해보고 싶다면,

     

    /abc/.test('abcdef')

    /정규식/.test(정규식으로 검사해볼문자) 쓰면 됩니다.

    (정규식으로 검사해볼문자)가 들어있으면 true를, 없으면 false를 남깁니다.

     

     

    정규식 문법

     

    [ ] 기호를 이용해서 문자 범위를 지정할 수 있습니다.

    [a-z] 는 a부터 z까지 아무문자 하나를 의미합니다.

    /[a-d]/.test('aefg')  //true
    /[가-다]/.test('다라마바')  //true
    • a부터 d까지의 아무 문자 하나가 저기(aefg) 있는지 검사
    • 가부터 다까지 아무 문자 하나가 저기(다라마바) 있는지 검사

     

     

     영문 정규식, 한글 정규식

    /[a-zA-Z]/.test('반가워요')  //false
    /[ㄱ-ㅎ가-힣ㅏ-ㅣ]/.test('반가워요')  //true
    • [a-zA-Z] 이건 아무 알파벳(대소문자 상관없이) 하나라는 뜻입니다.
    • [ㄱ-ㅎ가-힣ㅏ-ㅣ] 이건 아무 한글(자음 모음 상관없이) 하나라는 뜻입니다.

     

    영문 소문자영문 대문자영문 아무문자한글 자음한글 모음한글 아무문자

    /[a-z]/ /[A-Z]/ /[a-zA-Z]/ /[ㄱ-ㅎ]/ /[ㅏ-ㅣ]/ /[ㄱ-ㅎ가-힣ㅏ-ㅣ]/

     

     

     숫자 정규식

    /[0-9]/.test('a2f7e')   //true
    • [0-9] 이건 아무 숫자 하나라는 뜻입니다. a2f7e에 숫자가 두개나 있으므로 true입니다.

     

     

     특수문자 정규식

    /\S/.test('abcde')   //true
    • 백슬래시S 는 특수문자 포함 아무문자 1개라는 뜻입니다.

     

     

     시작문자, 끝문자 정규식

    /^a/.test('abcde')   //true
    /e$/.test('abcde')   //true
    • ^a 라고 적으면 a로 시작하는지 검사할 수 있습니다.
    • e$ 라고 적으면 e로 끝나는지 검사할 수 있습니다.

     

     

     A or B 정규식

     

    | 이건 or 기호입니다.

    정규식에선 괄호맘대로 칠 수 있습니다.

    /(e|f)/.test('abcde')   //true
    • 위 코드는 e 또는 f중 아무거나 한 문자가 있나 검사 가능합니다.

     

     

     AAAAA 정규식

    /a+/
    • + 기호를 붙여주시면 뒤에 오는 글자들도 a와 일치하면 반복해서 쭉 찾아달라는 뜻입니다.

    /a/는 a를 다 찾으라는게 아니라 a 한개를 찾으라는 뜻입니다.

    aaaaa 반복된 a를 찾고 싶으면 /a+/ 쓰면 됩니다.

     

     

     

     아무문자 정규식

     

    아무문자 한글자아무문자 여러글자특정문자 여러글자아무문자 여러글자 다음에 t라는 글자.은 특별한 정규식이라 특수문자 정규식이 아님

    /\S/ /\S+/ /a+/ /\S+t/ /\./

     

     

    이메일 정규식

     

    이메일은 모든 문자 사이에 @ 그리고 .이라는 특수문자가 와야합니다.

    /정규식/ => /아무문자 여러개@아무문자 여러개.아무문자 여러개/ => /\S+@\S+\.\S+/

     

     정규식으로 이메일 형식 검사

     

    /\S+@\S+\.\S+/.test('aaa@bbb.ccc')

     

     

    비밀번호 정규식

     

    요즘은 비밀번호에 대소문자+숫자+특수문자 로 이루어진 비밀번호를 입력하라고 하는 사이트가 많습니다.

    유저가 가입시 비밀번호 입력을 잘 했는지 검사해봅시다.

    /정규식/ => /영문 아무문자(대소 포함)숫자특수문자/ => /[a-zA-Z0-9\S]/

     

     정규식으로 비밀번호 형식 검사

     

    /[a-zA-Z0-9\S]/.test('비밀번호')

     

    'JAVASCRIPT > Javascript' 카테고리의 다른 글

    Scroll Method 정리  (1) 2022.09.16
    iframe 높이 자동 조절 (고정 case / 유동 case)  (0) 2020.11.27
Designed by Tistory.