입력값 체크(한글, 영문, 특수문자, 공백 정규식 활용)
// 특수 문자 체크
function checkSpecial(str) {
const regExp = /[!?@#$%^&*():;+-=~{}<>\_\[\]\|\\\"\'\,\.\/\`\₩]/g;
if(regExp.test(str)) {
return true;
}else{
return false;
}
}
// 한글 체크
function checkKor(str) {
const regExp = /[ㄱ-ㅎㅏ-ㅣ가-힣]/g;
if(regExp.test(str)){
return true;
}else{
return false;
}
}
// 숫자 체크
function checkNum(str){
const regExp = /[0-9]/g;
if(regExp.test(str)){
return true;
}else{
return false;
}
}
// 영문(영어) 체크
function checkEng(str){
const regExp = /[a-zA-Z]/g; // 영어
if(regExp.test(str)){
return true;
}else{
return false;
}
}
// 영문+숫자만 입력 체크
function checkEngNum(str) {
const regExp = /[a-zA-Z0-9]/g;
if(regExp.test(str)){
return true;
}else{
return false;
}
}
// 공백(스페이스 바) 체크
function checkSpace(str) {
if(str.search(/\s/) !== -1) {
return true; // 스페이스가 있는 경우
}else{
return false; // 스페이스 없는 경우
}
}
정규표현식 기초
형식: /정규식/
- : 범위(어디에서 어디까지)
a-z : a에서 z까지를 의미
0-9 : 0에서 9까지를 의미
ㄱ-ㅎ : ㄱ에서 ㅎ까지를 의미
ㅏ-ㅣ : ㅏ에서 ㅣ 까지를 의미
가-힣 : '가'에서 '힣'까지를 의미
[] : 괄호 안에 문자중 1개
[a-z] : a에서 z중 하나.
[abc]d : ad, bd, bd 를 의미
[^] : 괄호안의 문제 부정(제외)
[^a-z] : a ~ z를 제외한 모든 문자
[^0-9] : 숫자를 제외한 모든 문자
| : 또는(OR)
[a-z|A-Z] : a ~ z 또는 A ~ Z 의미(영어 전체)
[ㄱ-ㅎ|ㅏ-ㅣ|가-힣] : ㄱ ~ ㅎ 또는 ㅏ ~ ㅣ 또는 가 ~ 힣 의미(한글 전체)
^ : 문자열의 처음
^[a-zA-Z] : 영문자로 시작해야함
$ : 문자열의 끝
[a-zA-Z]$ : 영문자로 끝나야함
^[a-zA-Z]$ : 영문자로 시작하고, 영문자로 끝나야함
* : 0회 이상(여러개)
^[a-zA-Z]*$ : 여러개의 문자가 모두 영문자여야 함
^[0-9]*$ : 여러개의 문자가 모두 숫자여야 함
^[a-zA-Z0-9]*$ : 여러개의 문자가 모두 영문자나 숫자여야 함
{m, n} : m회 이상, n회 이하
^[a-zA-Z]*${1, 10} : 영문자 1자 이상, 10자 이하