댓글 수정 부분을 개발할 때 수정을 할 때 특수문자가 제대로 나오지 않는 경우가 있다.
따라서 html의 escape를 처리해줘야한다.
escape() 함수를 사용하고 escape로 바뀌지 않는 특수문자는 직접 replace를 사용하여 바꿔주었다.
// ex) "<>" -> "<>"
convertEscapeHtml = function (str) {
str = escape(str);
let map = {
'*':'*', '+':'+', '-':'-', '.':'.',
'/':'/', '@':'@', '_':'_'
};
return str.replace(/[*+-./@_]/g, function(m) { return map[m]; });
}
unescape의 경우도 만들어주었다.
replaceAll을 사용하여 바꿔주었는데, 정규식을 바꿔줘야 할 부분을 어떻게 써야할지 몰라 하나하나 바꿔주었다.
// ex) "<>" -> "<>"
convertUnEscapeHtml = function (str) {
str = unescape(str);
return str.replaceAll('*', '*')
.replaceAll('+', '+')
.replaceAll('-', '-')
.replaceAll('.', '.')
.replaceAll('/', '/')
.replaceAll('@', '@')
.replaceAll('_', '_')
}
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 |