정규표현식
- 문자열의 특정 패턴을 찾을 수 있는 문법
- / / 사이에 정수는 \d,
- 패턴을 찾아서 추출, 삭제, 치환 등의 문자열 조작을 할 수 있음
실무에서의 사용
- 이메일, 주소, 전화번호 규칙 검증
- textarea에 입력된 것 중 불필요한 입력값 추출
match 함수 간단한 사용법
숫자 하나 찾기
var result = "abc3zzz".match(/\d/)[0];
console.log(result); // 3
문자열 내 숫자 2개 찾기
var result = "abc32zzz".match(/\d\d/)[0];
console.log(result); // 32
전화번호 패턴 찾기
- 데시(/)가 포함된 10자리
"010-123-1234".match(/\d{3}-\d{3}-\d{4}/)[0]
- 10자리 이거나 데시가 포함된 10자리
- 또는 연산자를 씀 (a 또는 b)
-
괄호를 쓰고 적용 => (a b)
-
- 또는 연산자를 안쓰고 적용하려면 ?를 붙이면됨
- 또는 연산자를 씀 (a 또는 b)
"010-123-1234".match(/(\d{3}-\d{3}-\d{4}|\d{10})/)[0]
"0101231234".match(/\d{3}-?\d{3}-?\d{4}/)[0]
- 앞자리는 무조건 01으로 시작하고 바로뒤에 0,7,8,9가 올 수 있음(010, 019…)
"010-123-1234".match(/(^01[0789]-\d{3}-\d{4}|^01[0789]\d{7})/)[0]
"019-123-1234".match(/(01[0789]-\d{3}-\d{4}|^01[0789]\d{7})/)[0]
- 가운데 자리에 3~4자리가 올 수 있다
"010-1233-1234".match(/(^01[0789]-\d{3,4}-\d{4}|^01[0789]\d{7})/)[0]
이메일 패턴 찾기
"traveloving2030@gmail.com".match(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/)[0]
집전화번호
"051-927-9273".match(/^(070|02|031|032|033|041|042|043|051|052|053|054|055|061|062|063|064)-\d{3,4}-\d{4}$/)[0]
우편번호
- 규정이 바뀌면서 614-751 또는 614751 이렇게 쓸 수 있음
- ?를 써서 데시를 붙이거나 안붙이거나로 적용 가능!
"614-751".match(/^\d{3}-?\d{3}$/)[0]
아이디
- 2자리부터 12자리까지 대소문자 허용, _ 까지 허용
"s_biojung".match(/^[a-zA-Z_]\w{2,12}$/)[0]
주민등록번호
"930426-1234567".match(/^\d{2}[0-1]\d[0-3]\d-?[1-6]\d{6}$/)[0]
replace 함수 간단한 사용법
전화번호
- $1이 가리키는 것은 괄호 안의 \d{2}
- 얘를 0으로 바꿔주세요
"019-123-1234".replace(/(\d{2})\d/, "$10") //010-123-1234
이더리움 주소
account.replace(/\"/g,'');