JavaScript 필드 유효성 검사
페이지 정보
본문
prototype.js
<script type="text/javascript>
// 1. 입력값이 NULL인지 체크 // isNull(0
// 2. 입력값에 스페이스 이외의 의미있는 값이 있는지 체크 // isEmpty()
// 3. 입력값에 특정 문자(chars)가 있는지 체크 // containsChars()
// 4. 입력값이 특정 문자(chars)만으로 되어있는지 체크 // containsCharsOnly()
// 5. 입력값이 알파벳인지 체크 // isAlphabet()
// 6. 입력값이 알파벳 대문자인지 체크 // isUpperCase
// 7. 입력값이 알파벳 소문자인지 체크 // isLowerCase
// 8. 입력값에 숫자만 있는지 체크 // isNumber
// 8-2. 입력값에 숫자만 있는지 체크 // isNum
// 9. 입력값이 알파벳,숫자로 되어있는지 체크 // isAlphaNum
// 10. 입력값이 숫자,대시(-)로 되어있는지 체크 // isNumDash
// 11. 입력값이 숫자,콤마(,)로 되어있는지 체크 // isNumComma
// 12. 입력값이 사용자가 정의한 포맷 형식인지 체크 // isValidFormat
// 13. 입력값이 이메일 형식인지 체크 // isValidEmail
// 14. 입력값이 전화번호 형식(숫자-숫자-숫자)인지 체크 // isValidPhone
// 15. 입력값의 바이트 길이를 리턴 // getByteLength
// 16. 입력값에서 콤마를 없앤다. // removeComma
// 17. 선택된 라디오버튼이 있는지 체크 // hasCheckedRadio
// 18. 선택된 체크박스가 있는지 체크 // hasCheckedBox
// 19. 사업자 등록번호 유효성 체크 // chkbusin_num
// 19-2. 사업자 등록번호 유효성 체크 // checkBizID
// 1. 입력값이 NULL인지 체크
function isNull(input) {
if (input.value == null input.value == "") {
return true;
}
return false;
}
// 1-2. 입력값이 NULL인지 체크
function isEmpty(pValue){
if( (pValue == "") || (pValue == null) ){
return true;
}
return false;
}
// 2. 입력값에 스페이스 이외의 의미있는 값이 있는지 체크
// ex) if (isEmpty(form.keyword)) {
// alert("검색조건을 입력하세요.");
// }
function isEmpty(input) {
if (input.value == null input.value.replace(/ /gi,"") == "") {
return true;
}
return false;
}
// 3. 입력값에 특정 문자(chars)가 있는지 체크
// 특정 문자를 허용하지 않으려 할 때 사용
// ex) if (containsChars(form.name,"!,*&^%$#@~;")) {
// alert("이름 필드에는 특수 문자를 사용할 수 없습니다.");
// }
function containsChars(input,chars) {
for (var inx = 0; inx < input.value.length; inx++) {
if (chars.indexOf(input.value.charAt(inx)) != -1)
return true;
}
return false;
}
// 4. 입력값이 특정 문자(chars)만으로 되어있는지 체크
// 특정 문자만 허용하려 할 때 사용
// ex) if (!containsCharsOnly(form.blood,"ABO")) {
// alert("혈액형 필드에는 A,B,O 문자만 사용할 수 있습니다.");
// }
function containsCharsOnly(input,chars) {
for (var inx = 0; inx < input.value.length; inx++) {
if (chars.indexOf(input.value.charAt(inx)) == -1)
return false;
}
return true;
}
// 5. 입력값이 알파벳인지 체크
// 아래 isAlphabet() 부터 isNumComma()까지의 메소드가
// 자주 쓰이는 경우에는 var chars 변수를
// global 변수로 선언하고 사용하도록 한다.
// ex) var uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
// var lowercase = "abcdefghijklmnopqrstuvwxyz";
// var number = "0123456789";
// function isAlphaNum(input) {
// var chars = uppercase + lowercase + number;
// return containsCharsOnly(input,chars);
// }
function isAlphabet(input) {
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
return containsCharsOnly(input,chars);
}
// 6. 입력값이 알파벳 대문자인지 체크
function isUpperCase(input) {
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
return containsCharsOnly(input,chars);
}
// 7. 입력값이 알파벳 소문자인지 체크
function isLowerCase(input) {
var chars = "abcdefghijklmnopqrstuvwxyz";
return containsCharsOnly(input,chars);
}
// 8. 입력값에 숫자만 있는지 체크
function isNumber(input) {
var chars = "0123456789";
return containsCharsOnly(input,chars);
}
// 8-2. 입력값에 숫자만 있는지 체크
function isNum(str){
if(isEmpty(str)) return false;
for(var idx=0;idx < str.length;idx++){
if(str.charAt(idx) < '0' || str.charAt(idx) > '9'){
return false;
}
}
return true;
}
// 9. 입력값이 알파벳,숫자로 되어있는지 체크
function isAlphaNum(input) {
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
return containsCharsOnly(input,chars);
}
// 10. 입력값이 숫자,대시(-)로 되어있는지 체크
function isNumDash(input) {
var chars = "-0123456789";
return containsCharsOnly(input,chars);
}
// 11. 입력값이 숫자,콤마(,)로 되어있는지 체크
function isNumComma(input) {
var chars = ",0123456789";
return containsCharsOnly(input,chars);
}
// 12. 입력값이 사용자가 정의한 포맷 형식인지 체크
// 자세한 format 형식은 자바스크립트의 `regular expression`을 참조
function isValidFormat(input,format) {
if (input.value.search(format) != -1) {
return true; //올바른 포맷 형식
}
return false;
}
// 13. 입력값이 이메일 형식인지 체크
// ex) if (!isValidEmail(form.email)) {
// alert("올바른 이메일 주소가 아닙니다.");
// }
function isValidEmail(input) {
// var format = /^(\S+)@(\S+)\.([A-Za-z]+)$/;
var format = /^((\w[\-\.])+)@((\w[\-\.])+)\.([A-Za-z]+)$/;
return isValidFormat(input,format);
}
// 14. 입력값이 전화번호 형식(숫자-숫자-숫자)인지 체크
function isValidPhone(input) {
var format = /^(\d+)-(\d+)-(\d+)$/;
return isValidFormat(input,format);
}
// 15. 입력값의 바이트 길이를 리턴
// ex) if (getByteLength(form.title) > 100) {
// alert("제목은 한글 50자(영문 100자) 이상 입력할 수 없습니다.");
// } // Author : Wonyoung Lee
function getByteLength(input) {
var byteLength = 0;
for (var inx = 0; inx < input.value.length; inx++) {
var oneChar = escape(input.value.charAt(inx));
if ( oneChar.length == 1 ) {
byteLength ++;
} else if (oneChar.indexOf("%u") != -1) {
byteLength += 2;
} else if (oneChar.indexOf("%") != -1) {
byteLength += oneChar.length/3;
}
}
return byteLength;
}
// 16. 입력값에서 콤마를 없앤다.
function removeComma(input) {
return input.value.replace(/,/gi,"");
}
// 17. 선택된 라디오버튼이 있는지 체크
function hasCheckedRadio(input) {
if (input.length > 1) {
for (var inx = 0; inx < input.length; inx++) {
if (input[inx].checked) return true;
}
} else {
if (input.checked) return true;
}
return false;
}
// 18. 선택된 체크박스가 있는지 체크
function hasCheckedBox(input) {
return hasCheckedRadio(input);
}
// 19. 사업자 등록번호 유효성 체크
function chkbusin_num() {
var frm=document.code_01;
var strCk1=frm.busin_num.value;
var strCk2=frm.busin_num1.value;
var strCk3=frm.busin_num2.value;
var arrCkValue = new Array(10);
arrCkValue[0] = ( parseFloat(strCk1.substring(0 ,1)) * 1 ) % 10;
arrCkValue[1] = ( parseFloat(strCk1.substring(1 ,2)) * 3 ) % 10;
arrCkValue[2] = ( parseFloat(strCk1.substring(2 ,3)) * 7 ) % 10;
arrCkValue[3] = ( parseFloat(strCk2.substring(0 ,1)) * 1 ) % 10;
arrCkValue[4] = ( parseFloat(strCk2.substring(1 ,2)) * 3 ) % 10;
arrCkValue[5] = ( parseFloat(strCk3.substring(0 ,1)) * 7 ) % 10;
arrCkValue[6] = ( parseFloat(strCk3.substring(1 ,2)) * 1 ) % 10;
arrCkValue[7] = ( parseFloat(strCk3.substring(2 ,3)) * 3 ) % 10;
intCkTemp = parseFloat(strCk3.substring(3 ,4)) * 5 + "0";
arrCkValue[8] = parseFloat(intCkTemp.substring(0,1)) + parseFloat(intCkTemp.substring(1,2));
arrCkValue[9] = parseFloat(strCk3.substring(4,5));
intCkLastid = ( 10 - ( ( arrCkValue[0]+arrCkValue[1]+arrCkValue[2]+arrCkValue[3]+arrCkValue[4]+arrCkValue[5]+arrCkValue[6]+arrCkValue[7]+arrCkValue[8] ) % 10 ) ) % 10;
if (arrCkValue[9] != intCkLastid) {
alert ("잘못된 사업자등록번호입니다. 다시 확인해 주십시오");
frm.busin_num.value="";
frm.busin_num1.value="";
frm.busin_num2.value="";
frm.busin_num.focus();
return;
} else {
frm.busin_kind.focus();
return;
}
}
// 19-2. 사업자 등록번호 유효성 체크
//사업자 등록번호에 '-'가 포함되어 있어도 상관없다.
function checkBizID(bizID) //사업자등록번호 체크
{
// bizID는 숫자만 10자리로 해서 문자열로 넘긴다.
var checkID = new Array(1, 3, 7, 1, 3, 7, 1, 3, 5, 1);
var tmpBizID, i, chkSum=0, c2, remander;
bizID = bizID.replace(/-/gi,'');
for (i=0; i<=7; i++) chkSum += checkID[i] * bizID.charAt(i);
c2 = "0" + (checkID[8] * bizID.charAt(8));
c2 = c2.substring(c2.length - 2, c2.length);
chkSum += Math.floor(c2.charAt(0)) + Math.floor(c2.charAt(1));
remander = (10 - (chkSum % 10)) % 10 ;
if (Math.floor(bizID.charAt(9)) == remander) return true ; // OK!
return false;
}
</script>
19-2. 사용예
<scipt>
if (frm.biznumber.value=="")
{
alert("사업자등록번호를 입력하세요.");
frm.biznumber.focus();
return;
}
if (!checkBizID(frm.biznumber.value))
{
alert("올바른 사업자등록번호를 입력하세요.");
frm.biznumber.focus();
return;
}
</script>
참고자료
http://blog.naver.com/yyoon159?Redirect=Log&logNo=50013705792
http://maruhosting.com/bbs/view.php?id=tip_js&no=8
http://sujunggusul.com/hikboard/board_view.php?tablename=bbs_all&index=156
http://sujunggusul.com/hikboard/board_view.php?tablename=bbs_all&index=155
http://blog.naver.com/cantabile31?Redirect=Log&logNo=10012669777
http://blog.daum.net/newhyojun/7839869
<script type="text/javascript>
// 1. 입력값이 NULL인지 체크 // isNull(0
// 2. 입력값에 스페이스 이외의 의미있는 값이 있는지 체크 // isEmpty()
// 3. 입력값에 특정 문자(chars)가 있는지 체크 // containsChars()
// 4. 입력값이 특정 문자(chars)만으로 되어있는지 체크 // containsCharsOnly()
// 5. 입력값이 알파벳인지 체크 // isAlphabet()
// 6. 입력값이 알파벳 대문자인지 체크 // isUpperCase
// 7. 입력값이 알파벳 소문자인지 체크 // isLowerCase
// 8. 입력값에 숫자만 있는지 체크 // isNumber
// 8-2. 입력값에 숫자만 있는지 체크 // isNum
// 9. 입력값이 알파벳,숫자로 되어있는지 체크 // isAlphaNum
// 10. 입력값이 숫자,대시(-)로 되어있는지 체크 // isNumDash
// 11. 입력값이 숫자,콤마(,)로 되어있는지 체크 // isNumComma
// 12. 입력값이 사용자가 정의한 포맷 형식인지 체크 // isValidFormat
// 13. 입력값이 이메일 형식인지 체크 // isValidEmail
// 14. 입력값이 전화번호 형식(숫자-숫자-숫자)인지 체크 // isValidPhone
// 15. 입력값의 바이트 길이를 리턴 // getByteLength
// 16. 입력값에서 콤마를 없앤다. // removeComma
// 17. 선택된 라디오버튼이 있는지 체크 // hasCheckedRadio
// 18. 선택된 체크박스가 있는지 체크 // hasCheckedBox
// 19. 사업자 등록번호 유효성 체크 // chkbusin_num
// 19-2. 사업자 등록번호 유효성 체크 // checkBizID
// 1. 입력값이 NULL인지 체크
function isNull(input) {
if (input.value == null input.value == "") {
return true;
}
return false;
}
// 1-2. 입력값이 NULL인지 체크
function isEmpty(pValue){
if( (pValue == "") || (pValue == null) ){
return true;
}
return false;
}
// 2. 입력값에 스페이스 이외의 의미있는 값이 있는지 체크
// ex) if (isEmpty(form.keyword)) {
// alert("검색조건을 입력하세요.");
// }
function isEmpty(input) {
if (input.value == null input.value.replace(/ /gi,"") == "") {
return true;
}
return false;
}
// 3. 입력값에 특정 문자(chars)가 있는지 체크
// 특정 문자를 허용하지 않으려 할 때 사용
// ex) if (containsChars(form.name,"!,*&^%$#@~;")) {
// alert("이름 필드에는 특수 문자를 사용할 수 없습니다.");
// }
function containsChars(input,chars) {
for (var inx = 0; inx < input.value.length; inx++) {
if (chars.indexOf(input.value.charAt(inx)) != -1)
return true;
}
return false;
}
// 4. 입력값이 특정 문자(chars)만으로 되어있는지 체크
// 특정 문자만 허용하려 할 때 사용
// ex) if (!containsCharsOnly(form.blood,"ABO")) {
// alert("혈액형 필드에는 A,B,O 문자만 사용할 수 있습니다.");
// }
function containsCharsOnly(input,chars) {
for (var inx = 0; inx < input.value.length; inx++) {
if (chars.indexOf(input.value.charAt(inx)) == -1)
return false;
}
return true;
}
// 5. 입력값이 알파벳인지 체크
// 아래 isAlphabet() 부터 isNumComma()까지의 메소드가
// 자주 쓰이는 경우에는 var chars 변수를
// global 변수로 선언하고 사용하도록 한다.
// ex) var uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
// var lowercase = "abcdefghijklmnopqrstuvwxyz";
// var number = "0123456789";
// function isAlphaNum(input) {
// var chars = uppercase + lowercase + number;
// return containsCharsOnly(input,chars);
// }
function isAlphabet(input) {
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
return containsCharsOnly(input,chars);
}
// 6. 입력값이 알파벳 대문자인지 체크
function isUpperCase(input) {
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
return containsCharsOnly(input,chars);
}
// 7. 입력값이 알파벳 소문자인지 체크
function isLowerCase(input) {
var chars = "abcdefghijklmnopqrstuvwxyz";
return containsCharsOnly(input,chars);
}
// 8. 입력값에 숫자만 있는지 체크
function isNumber(input) {
var chars = "0123456789";
return containsCharsOnly(input,chars);
}
// 8-2. 입력값에 숫자만 있는지 체크
function isNum(str){
if(isEmpty(str)) return false;
for(var idx=0;idx < str.length;idx++){
if(str.charAt(idx) < '0' || str.charAt(idx) > '9'){
return false;
}
}
return true;
}
// 9. 입력값이 알파벳,숫자로 되어있는지 체크
function isAlphaNum(input) {
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
return containsCharsOnly(input,chars);
}
// 10. 입력값이 숫자,대시(-)로 되어있는지 체크
function isNumDash(input) {
var chars = "-0123456789";
return containsCharsOnly(input,chars);
}
// 11. 입력값이 숫자,콤마(,)로 되어있는지 체크
function isNumComma(input) {
var chars = ",0123456789";
return containsCharsOnly(input,chars);
}
// 12. 입력값이 사용자가 정의한 포맷 형식인지 체크
// 자세한 format 형식은 자바스크립트의 `regular expression`을 참조
function isValidFormat(input,format) {
if (input.value.search(format) != -1) {
return true; //올바른 포맷 형식
}
return false;
}
// 13. 입력값이 이메일 형식인지 체크
// ex) if (!isValidEmail(form.email)) {
// alert("올바른 이메일 주소가 아닙니다.");
// }
function isValidEmail(input) {
// var format = /^(\S+)@(\S+)\.([A-Za-z]+)$/;
var format = /^((\w[\-\.])+)@((\w[\-\.])+)\.([A-Za-z]+)$/;
return isValidFormat(input,format);
}
// 14. 입력값이 전화번호 형식(숫자-숫자-숫자)인지 체크
function isValidPhone(input) {
var format = /^(\d+)-(\d+)-(\d+)$/;
return isValidFormat(input,format);
}
// 15. 입력값의 바이트 길이를 리턴
// ex) if (getByteLength(form.title) > 100) {
// alert("제목은 한글 50자(영문 100자) 이상 입력할 수 없습니다.");
// } // Author : Wonyoung Lee
function getByteLength(input) {
var byteLength = 0;
for (var inx = 0; inx < input.value.length; inx++) {
var oneChar = escape(input.value.charAt(inx));
if ( oneChar.length == 1 ) {
byteLength ++;
} else if (oneChar.indexOf("%u") != -1) {
byteLength += 2;
} else if (oneChar.indexOf("%") != -1) {
byteLength += oneChar.length/3;
}
}
return byteLength;
}
// 16. 입력값에서 콤마를 없앤다.
function removeComma(input) {
return input.value.replace(/,/gi,"");
}
// 17. 선택된 라디오버튼이 있는지 체크
function hasCheckedRadio(input) {
if (input.length > 1) {
for (var inx = 0; inx < input.length; inx++) {
if (input[inx].checked) return true;
}
} else {
if (input.checked) return true;
}
return false;
}
// 18. 선택된 체크박스가 있는지 체크
function hasCheckedBox(input) {
return hasCheckedRadio(input);
}
// 19. 사업자 등록번호 유효성 체크
function chkbusin_num() {
var frm=document.code_01;
var strCk1=frm.busin_num.value;
var strCk2=frm.busin_num1.value;
var strCk3=frm.busin_num2.value;
var arrCkValue = new Array(10);
arrCkValue[0] = ( parseFloat(strCk1.substring(0 ,1)) * 1 ) % 10;
arrCkValue[1] = ( parseFloat(strCk1.substring(1 ,2)) * 3 ) % 10;
arrCkValue[2] = ( parseFloat(strCk1.substring(2 ,3)) * 7 ) % 10;
arrCkValue[3] = ( parseFloat(strCk2.substring(0 ,1)) * 1 ) % 10;
arrCkValue[4] = ( parseFloat(strCk2.substring(1 ,2)) * 3 ) % 10;
arrCkValue[5] = ( parseFloat(strCk3.substring(0 ,1)) * 7 ) % 10;
arrCkValue[6] = ( parseFloat(strCk3.substring(1 ,2)) * 1 ) % 10;
arrCkValue[7] = ( parseFloat(strCk3.substring(2 ,3)) * 3 ) % 10;
intCkTemp = parseFloat(strCk3.substring(3 ,4)) * 5 + "0";
arrCkValue[8] = parseFloat(intCkTemp.substring(0,1)) + parseFloat(intCkTemp.substring(1,2));
arrCkValue[9] = parseFloat(strCk3.substring(4,5));
intCkLastid = ( 10 - ( ( arrCkValue[0]+arrCkValue[1]+arrCkValue[2]+arrCkValue[3]+arrCkValue[4]+arrCkValue[5]+arrCkValue[6]+arrCkValue[7]+arrCkValue[8] ) % 10 ) ) % 10;
if (arrCkValue[9] != intCkLastid) {
alert ("잘못된 사업자등록번호입니다. 다시 확인해 주십시오");
frm.busin_num.value="";
frm.busin_num1.value="";
frm.busin_num2.value="";
frm.busin_num.focus();
return;
} else {
frm.busin_kind.focus();
return;
}
}
// 19-2. 사업자 등록번호 유효성 체크
//사업자 등록번호에 '-'가 포함되어 있어도 상관없다.
function checkBizID(bizID) //사업자등록번호 체크
{
// bizID는 숫자만 10자리로 해서 문자열로 넘긴다.
var checkID = new Array(1, 3, 7, 1, 3, 7, 1, 3, 5, 1);
var tmpBizID, i, chkSum=0, c2, remander;
bizID = bizID.replace(/-/gi,'');
for (i=0; i<=7; i++) chkSum += checkID[i] * bizID.charAt(i);
c2 = "0" + (checkID[8] * bizID.charAt(8));
c2 = c2.substring(c2.length - 2, c2.length);
chkSum += Math.floor(c2.charAt(0)) + Math.floor(c2.charAt(1));
remander = (10 - (chkSum % 10)) % 10 ;
if (Math.floor(bizID.charAt(9)) == remander) return true ; // OK!
return false;
}
</script>
19-2. 사용예
<scipt>
if (frm.biznumber.value=="")
{
alert("사업자등록번호를 입력하세요.");
frm.biznumber.focus();
return;
}
if (!checkBizID(frm.biznumber.value))
{
alert("올바른 사업자등록번호를 입력하세요.");
frm.biznumber.focus();
return;
}
</script>
참고자료
http://blog.naver.com/yyoon159?Redirect=Log&logNo=50013705792
http://maruhosting.com/bbs/view.php?id=tip_js&no=8
http://sujunggusul.com/hikboard/board_view.php?tablename=bbs_all&index=156
http://sujunggusul.com/hikboard/board_view.php?tablename=bbs_all&index=155
http://blog.naver.com/cantabile31?Redirect=Log&logNo=10012669777
http://blog.daum.net/newhyojun/7839869
댓글목록
등록된 댓글이 없습니다.