[JavaScript] 정규식 모음

2023. 9. 12. 11:05· JavaScript
더보기
Flag Meaning Description
i Ignore Case 대소문자를 구별하지 않고 검색한다.
g Global 문자열 내의 모든 패턴을 검색한다.
m Multi Line 문자열의 행이 바뀌더라도 검색을 계속한다.
s ​ .​(모든 문자 정규식)이 개행 문자 \n도 포함하도록
u unicode 유니코드 전체를 지원
y sticky 문자 내 특정 위치에서 검색을 진행하는 ‘sticky’ 모드를 활성화
a-zA-Z 영어알파벳(-으로 범위 지정)
ㄱ-ㅎ가-힣 한글 문자(-으로 범위 지정)
0-9 숫자(-으로 범위 지정)
. 모든 문자열(숫자, 한글, 영어, 특수기호, 공백 모두)
단, 줄바꿈 X
\d 숫자
\D 숫자가 아닌 것
\w 밑줄 문자를 포함한 영숫자 문자에 대응
[A-Za-z0-9_] 와 동일
\W \w 가 아닌 것
\s space 공백
\S space 공백이 아닌 것
\특수기호 특수기호 \* \^ \& \! \? ...등
\b 63개 문자(영문 대소문자 52개 + 숫자 10개 + _(underscore))가 아닌 나머지 문자에 일치하는 경계(boundary)
\B 63개 문자에 일치하는 경계
\x 16진수 문자에 일치
/\x61/는 a에 일치
\0 8진수 문자에 일치
/\141/은 a에 일치
\u 유니코드(Unicode) 문자에 일치
/\u0061/는 a에 일치
\c 제어(Control) 문자에 일치
\f 폼 피드(FF, U+000C) 문자에 일치
\n 줄 바꿈(LF, U+000A) 문자에 일치
\r 캐리지 리턴(CR, U+000D) 문자에 일치
\t 탭 (U+0009) 문자에 일치
| OR
a|b
[] 괄호안의 문자들 중 하나. or 처리 묶음 보면 된다.
/abc/ : "abc"를 포함하는
/[abc]/ : "a" 또는 "b" 또는 "c" 를 포함하는
[다-바] : 다 or 라 or 마 or 바
[^문자] 괄호안의 문자를 제외한 것
[^lgEn] "l" "g" "E" "N" 4개 문자를 제외

※ 대괄호 안에서 쓰면 제외의 뜻, 대괄호 밖에서 쓰면 시작점 뜻
^문자열 특정 문자열로 시작 (시작점)
/^www/
문자열$ 특정 문자열로 끝남 (종착점)
/com$/
? 없거나 or 최대 한개만
/apple?/
* 없거나 or 있거나 (여러개)
/apple*/
+ 최소 한개 or 여러개
/apple+/
*? 없거나, 있거나 and 없거나, 최대한개 : 없음
{0}와 동일
+? 최소한개, 있거나 and 없거나, 최대한개 : 한개
{1}와 동일
{n} n개
{Min,} 최소 Min개 이상
{Min, Max} 최소 Min개 이상, 최대 Max개 이하
{3,5}? == {3}와 동일
() 그룹화 및 캡쳐
(?: 패턴) 그룹화 (캡쳐 X)
(?=) 앞쪽 일치(Lookahead),
/ab(?=c)/
(?!) 부정 앞쪽 일치(Negative Lookahead),
/ab(?!c)/
(?<=) 뒤쪽 일치(Lookbehind),
/(?<=ab)c/ 
(?<!) 부정 뒤쪽 일치(Negative Lookbehind),
/(?<!ab)c/
영어 숫자
/[^A-Za-z0-9]/ig

영어 한글
/[^A-Za-zㄱ-ㅎ|ㅏ-ㅣ|가-힣]/ig

영어 특수문자 숫자
/[^A-Za-z0-9`~!@#$%^&*|\\\'\";:\/?]/ig

주민등록번호 앞자리
/^\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])$/g;

대시없는 13자리
/^\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\d{7}$/

대시있는 주민번호 13자리
/^\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])[-]\d{7}$/

휴대폰 번호
/^01([0|1|6|7|8|9])-?([0-9]{3,4})-?([0-9]{4})$/

일반 번호
/^\d{2,3}-?\d{3,4}-?\d{4}$/

비밀번호 특수문자 + 문자 + 숫자  8~15자리
 /^.*(?=^.{8,15}$)(?=.*\d)(?=.*[a-zA-Z])(?=.*[!@#$%^&+=]).*$/
 
비밀번호 문자+숫자 8~15자리
 /^[A-Za-z0-9]{8,15}$/
 
이메일
/^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i

계좌번호
/([0-9,\-]{3,6}\-[0-9,\-]{2,6}\-[0-9,\-])/

 

//영어 대문자로 바꿈(이름)
//천지인 키보드 때문에 입력으로 막으면 안 됨!
$("input[name=name]").on("blur", function() {
    const pattern=/^[0-9ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z/\s]*$/;

    this.value = this.value.replace(/[^0-9A-Za-zㄱ-ㅎ|ㅏ-ㅣ|가-힣/\s]/ig, '');

    if(pattern.test(this.value)){
    	//소문자면 toLowerCase
        this.value = this.value.toUpperCase();
    }
});


/*
	인풋으로 들어오는 밸류 막을때
    <input name="test" oninput="strOnInput(this)" />
*/ 

function strOnInput(e)  {
    e.value = e.value.replace(/[^A-Za-z0-9]/ig, '')
}

// jquery 실시간 변경
$("input[name=test]").on("propertyChange change focus focusout keyup paste input", function() {
    this.value = this.value.replace(/[^0-9]/ig, '');
});

항상 모바일도 신경쓰자

실시간 변경은 일반 키보드가 아닌 모바일 키보드도 신경써야한다.

모바일 키보드 중 천지인 키보드는 · 으로 획을 추가하기 때문에 한글 자판을 신경써야한다. 

 

'JavaScript' 카테고리의 다른 글

[JavaScript] 페이징  (0) 2024.10.15
[JavaScript] 쓸만한 유틸 모음  (0) 2024.04.24
[JavaScript] 드래그 & 드롭  (0) 2024.04.24
[Javascript] 공인 IP 가져오기  (0) 2023.12.01
[JavaScript] 로딩  (0) 2023.10.12
'JavaScript' 카테고리의 다른 글
  • [JavaScript] 쓸만한 유틸 모음
  • [JavaScript] 드래그 & 드롭
  • [Javascript] 공인 IP 가져오기
  • [JavaScript] 로딩
mart3n
mart3n
mart3n
시골 외양간 개발자
mart3n
전체
오늘
어제
  • Category
    • 잡다
    • Java
    • JavaScript
      • Vanilla
      • jQuery
      • Ambiguous
    • Framework
      • Spring
      • Node
      • React
      • Next
      • Vue
    • DB
    • IDE
    • ErrorNote
      • Java
      • Spring
      • JavaScript
      • Svn
    • 공부방
      • spring
      • java
      • javascript
      • db

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • lucy-xss
  • pagehelper
  • WYSIWYG
  • 페이지 헬퍼 유틸
  • 페이지 헬퍼
  • pagehelper util
  • editor
  • 자바스크립트 로딩

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
mart3n
[JavaScript] 정규식 모음
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.