사용자가 숫자 연산자를 사용하여 숫자 필드를 입력 할 수있는 텍스트 필드가 있습니다. 다음은 유효한 입력에 대한 일련의 예제입니다.여러 정규식을 사용하여 입력 유효성 검사
1. > 3
2. >= 3
3. < 3
4. <= 3
5. <> 3 (NOT)
6. 3 to 5 (RANGE)
7. <> 3 to 5 (NOT RANGE)
다음과 같은 논리가 있습니다. 각 regex
을 반복하여 keyup
에 있습니다. 이 일을 더 우아하고 더 좋은 방법으로 알고 싶습니다.
function myFunction() {
var x, text;
// Get the value of the input field with id="numb"
x = document.getElementById("numb").value;
var arrRegex = new Array("^>=\\d+$", "^<=\\d+$", "^>\\d+$", "^<\\d+$", "^\\d+$", "^<> \\d+$", "^<> \\d+ to \\d+$", "^\\d+ to \\d+$");
c = false;
for (i = 0; i < arrRegex.length; i++) {
var regex = new RegExp(arrRegex[i]);
if (regex.test(x)) {
c = true;
}
}
if (c == true) {
document.getElementById("numb").style.backgroundColor = "green";
} else {
document.getElementById("numb").style.backgroundColor = "red";
}
}
입력이없는 기본값은 녹색이며 바람직하지 않습니다. – skeptic01
@ skeptic01 업데이트 된 게시물보기; 입력을 처리하지 않기 위해'required' 속성을 추가했습니다. 기본'background'는 입력없이 무엇으로 설정되어야합니까? – guest271314
입력이없는 배경이 없습니다. – skeptic01