본문 바로가기

JAVA/WEB

[Javascript] validation

 

댓글 수정 부분을 개발할 때 수정을 할 때 특수문자가 제대로 나오지 않는 경우가 있다.

따라서 html의 escape를 처리해줘야한다.

 

escape() 함수를 사용하고 escape로 바뀌지 않는 특수문자는 직접 replace를 사용하여 바꿔주었다.

// ex) "<>" -> "&lt;&gt;"

convertEscapeHtml = function (str) {
    str = escape(str);
    let map = {
        '*':'&#42;', '+':'&#43;', '-':'&#45;', '.':'&#46;',
        '/':'&#47;', '@':'&#64;', '_':'&#95;'
    };
    return str.replace(/[*+-./@_]/g, function(m) { return map[m]; });
}

 

unescape의 경우도 만들어주었다.

replaceAll을 사용하여 바꿔주었는데, 정규식을 바꿔줘야 할 부분을 어떻게 써야할지 몰라 하나하나 바꿔주었다.

// ex) "&lt;&gt;" -> "<>"

convertUnEscapeHtml = function (str) {
    str = unescape(str);
    return str.replaceAll('&#42;', '*')
        .replaceAll('&#43;', '+')
        .replaceAll('&#45;', '-')
        .replaceAll('&#46;', '.')
        .replaceAll('&#47;', '/')
        .replaceAll('&#64;', '@')
        .replaceAll('&#95;', '_')
}

 

min 과 max 길이 사이의 문자열인지 체크하는 함수이다.

min이 max보다 클 경우를 고려하여 Math처리를 해주었다.

checkLengthValidation = function (str, min, max) {
    return Math.min(min, max) <= str.length && str.length <= Math.max(min, max);
}

 

빈 값인지 체크하는 함수이다.

빈 문자열, null, undefined, 빈 객체인지 확인을 해주었다.

isEmptyValue = function (val) {
    return val == "" || val == null || val == undefined || (val != null && typeof val == "object" && !Object.keys(val).length);
}

 

isNaN 함수는 굉장히 모호하다고 하여 Number.isNaN 함수를 사용하였다. 

이 함수도 내 기준에서는 모호하여 Number로 바꿔주고 함수에 넣어주었다.

isNumber = function (str) {
    return !Number.isNaN(Number(str));
}

 

정규식으로 이메일 체크하는 부분도 작성하였다. match 함수를 사용하였다.

정규식은 인터넷 어딘가..

isEmail = function (str) {
    let regExp = /^[0-9A-Z]([-_\.]?[0-9A-Z])*@[0-9A-Z]([-_\.]?[0-9A-Z])*\.[A-Z]{2,6}$/i;
    if (str.match(regExp) == null) {
        return false;
    } else {
        return true;
    }
}

'JAVA > WEB' 카테고리의 다른 글

[css] word-break  (0) 2022.01.27
[vue.js] 하위 컴포넌트 함수 호출, 새로고침  (0) 2022.01.05
[Spring] JPA 사용 시 간단한 처리과정  (0) 2021.11.16