[javascript] 입력값 체크(한글, 영문, 특수문자, 공백 정규식 활용)

입력값 체크(한글, 영문, 특수문자, 공백 정규식 활용)

 

// 특수 문자 체크 
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자 이하