반응형
상황에 따라 내가 원하는 유효한 문자열 이 포함 여부에 되었는지 체크하는 함수를 만들어 보려고 합니다.
유효체크 문자를 인자값으로 받아 여러가지 상황에서 범용적으로 사용을 할수 있도록 처리하도록 해보겠습니다
원하는 유효한 문자열로 값을 체크
아래를 통해서 자세히 알아보시기 바랍니다.
function checkValidString(checkString, invalidString) {
if (!checkString) return -2; // checkString이 null이거나 빈 문자열인 경우 -2를 반환
const invalidChars = new Set([...invalidString]); // 중복을 허용하지 않는 Set으로 invalidString의 문자를 저장
for (let i = 0; i < checkString.length; i++) {
if (invalidChars.has(checkString[i])) {
return i; // 첫 번째로 발견된 유효하지 않은 문자의 인덱스 반환
}
}
return -1; // 유효한 문자열인 경우 -1을 반환
}
코드 설명
코드설명에 대한 내용은 아래에서 자세한 내용을 확인하시기 바랍니다.
위 코드는 주어진 문자열 checkString이 유효한지 검사하는 함수입니다. 여기서 유효하다는 것은 주어진 문자열이 invalidString에 포함된 문자를 포함하지 않는 것을 의미합니다.
함수는 먼저 checkString이 null인지 빈 문자열인지 확인합니다. 만약 그렇다면 -2를 반환하고 함수를 종료합니다.
이 부분은 입력값이 잘못된 경우를 처리하는 예외 처리 코드입니다.
그리고 나서 checkString의 각 문자를 하나씩 검사하면서, invalidString에 포함된 문자가 있는지 검사합니다. 이 때, 문자열 메서드 indexOf를 사용하여 invalidString에 포함된 문자가 있는지 확인합니다. 만약 유효하지 않은 문자가 발견되면 해당 문자의 인덱스를 반환하고 함수를 종료합니다.
invalidString에 포함된 문자가 없다면 -1을 반환하여 checkString이 문제없는 문자열임을 알립니다.
사용예 및 결과
사용예와 결과는 아래에서 자세히 확인하시기 바랍니다.
첫번째 인자 = 체크 대상 문자열
두번째 인자 = 들어가지 말아야할 문자열 ( 유효성체크 문자 )
-1 값이 나왔을때만 유효한 값이라고 판단
코드 예 )
// 특수문자 체크
var result = checkValidString('user001','`~!@#$%^&*()_=+[]{}\|;:",./<>?');
console.log(result);
// 결과 (정상) : -1
// - 만 체크하고 싶은경우
var result = checkValidString('010-1234-1234','-');
console.log(result);
// 결과 (유효하지 않음) : - 3
// @ 만 체크하고 싶은 경우
var result = checkValidString('test@test.com','@');
console.log(result);
// 결과(유효하지 않음) : 4
// 숫자만 체크하고 싶은경우
var result = checkValidString('010 1234 1234','1234567890');
console.log(result);
// 결과 (유효하지않음) : 0
'Script > Javascript' 카테고리의 다른 글
Javascript replace 역참조 치환 예제 (0) | 2023.02.06 |
---|---|
javascript 현재날짜 기준 과거 미래 체크 (0) | 2023.02.03 |
자바스크립트 timestamp 변환 최종정리 (0) | 2023.02.03 |
자바스크립트 초간단 엔터값 처리하기 (0) | 2022.07.26 |
jquery ajax 사용방법 예제 (0) | 2022.07.20 |
댓글