fix : validator.js 제거
parent
26e6d6abd6
commit
614e2d67b4
@ -1,535 +0,0 @@
|
||||
/***************************************************************************************************
|
||||
* Daon Soft 폼 검증 툴
|
||||
* Designed By xanadu (방기배)
|
||||
* 사용방법 :
|
||||
* HTML -
|
||||
* 아래 예와 같이 속성명을 정의하고, Form Elements 에 class 속성으로 사용한다.
|
||||
* <input type="" name="" value="" class="속성1 속성2 속성3" />
|
||||
* 예를 들어 반드시 입력해야 하며, 숫자만으로 되어있어야 하며, white space가 없어야 한다면,
|
||||
* 아래와 같이 사용한다.
|
||||
* <input type="" name="" value="" class="required validate-digits validate-white-space" />
|
||||
*
|
||||
* SCRIPT -
|
||||
* 폼 전체 적용
|
||||
* if(Validator.validate(검증대상Form객체)){
|
||||
* 문제가 없다면 수행할 코드....
|
||||
* form.submit();
|
||||
* }
|
||||
*
|
||||
* 한 항목씩 사용
|
||||
* var message = Validator["validate-full-jumin"](str);
|
||||
* // 오류가 있으면 메시지를 반환
|
||||
* if(message) {
|
||||
* alert(message);
|
||||
* return false;
|
||||
* }
|
||||
***************************************************************************************************/
|
||||
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
/**
|
||||
* ime-mode 설정
|
||||
*/
|
||||
$('.validate-digits').css("ime-mode","disabled"); //숫자만 입력 가능
|
||||
$('.validate-digits-').css("ime-mode","disabled"); //숫자 및 하이픈(-)만 입력 가능
|
||||
$('.validate-digits-dot').css("ime-mode","disabled"); //숫자 및 도트(.)만 입력 가능
|
||||
$('.validate-digits-comma').css("ime-mode","disabled"); //숫자 및 콤마(.)만 입력 가능
|
||||
$('.validate-digits-comma-dot').css("ime-mode","disabled"); //숫자 및 콤마(,),도트(.)만 입력 가능
|
||||
$('.validate-amount').css("ime-mode","disabled"); //금액만 입력 가능(숫자 및 콤마(,),포인트(.))
|
||||
$('.validate-id-format').css("ime-mode","disabled"); //아이디-영문으로 시작하고 영문(대소문자),숫자.,_만 입력 가능
|
||||
$('.validate-nickname-format').css("ime-mode","active"); //닉네임-한글,영문(대,소),숫자만 입력 가능
|
||||
$('.validate-alpha').css("ime-mode","disabled"); //영문으로 시작-알파뱃만 입력 가능
|
||||
$('.validate-basic-char').css("ime-mode","disabled"); //영문,슛자,언더바(_)만 입력 가능
|
||||
$('.validate-alpha-num').css("ime-mode","disabled"); //영문 및 숫자만 입력 가능
|
||||
$('.validate-kr-digits').css("ime-mode","active"); //한글 및 숫자 조합만 입력 가능
|
||||
$('.validate-date').css("ime-mode","disabled"); //날짜입력
|
||||
$('.validate-email').css("ime-mode","disabled"); //유효한 이메일
|
||||
$('.validate-url').css("ime-mode","disabled"); //유효한 url
|
||||
$('.validate-front-jumin').css("ime-mode","disabled"); //주민번호 앞자리
|
||||
$('.validate-back-jumin').css("ime-mode","disabled"); //주민번호 뒷자리
|
||||
$('.validate-full-jumin').css("ime-mode","disabled"); //전체 주민번호
|
||||
$('.validate-tel-num').css("ime-mode","disabled"); //전화번호
|
||||
$('.validate-biz-num').css("ime-mode","disabled"); //사업자번호
|
||||
$('.validate-ip').css("ime-mode","disabled"); //ip address
|
||||
});
|
||||
|
||||
|
||||
//*항목별 유효성검사 class 적용
|
||||
// -필수입력 항목
|
||||
// :required
|
||||
// -날짜 항목
|
||||
// :validate-date
|
||||
// -금액 항목
|
||||
// :validate-amount
|
||||
// -이메일 항목
|
||||
// :validate-email
|
||||
// -숫자 입력 항목
|
||||
// :validate-digits //숫자만 입력
|
||||
// :validate-digits- //숫자 및 하이픈(-)만 입력 가능
|
||||
// :validate-digits-comma //숫자 및 콤마(,)만 입력 가능
|
||||
// :validate-digits-dot //숫자 및 도트(.)만 입력 가능
|
||||
// :validate-digits-comma-dot //숫자 및 콤마(,),도트(.)만 입력 가능
|
||||
|
||||
/**
|
||||
* text input에 사용자가 입력한 데이터 전체를 자동 validation 한다.
|
||||
* validator.js를 참고해서 input태그의 class="속성1 속성2 속성3"을 입력하면 자동체크됨.
|
||||
* 예) class="required validate-digits validate-white-space"
|
||||
* 값 존재여부. 숫자만 입력됐는지 체크. 공백만 입력됐는지 체크. *validator.js에서 체크항목 확인
|
||||
* @param obj (jquery object)
|
||||
* @param value (jquery object value)
|
||||
*/
|
||||
function fn_setInputFormat_default(obj){
|
||||
fn_setInputFormat(obj, obj.value);
|
||||
}
|
||||
function fn_setInputFormat(obj, value){
|
||||
var classVal = $(obj).attr("class");
|
||||
var classList = classVal.split(' ');
|
||||
for(i=0;i<classList.length;i++){
|
||||
var typeName = classList[i].trim();
|
||||
|
||||
//datepicker적용 input tag에서 발생하는 오류에 대한 처리
|
||||
if("hasDatepicker"==typeName){
|
||||
continue;
|
||||
}
|
||||
|
||||
// var message = Validator[typeName](value);
|
||||
var message = '';
|
||||
try {
|
||||
message = Validator[typeName](value);
|
||||
} catch (e) {
|
||||
console.log('"'+typeName+'"과 일치하는 유효성검사 타입이 없습니다.');
|
||||
console.log(e);
|
||||
continue;
|
||||
}
|
||||
if(typeName != "required")
|
||||
if(message) {
|
||||
alert(message);
|
||||
setTimeout(function(){
|
||||
obj.focus();
|
||||
}, 0);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* text input에 사용자가 입력한 데이터 전체를 자동 validation 한다.
|
||||
* validator.js를 참고해서 input태그의 class="속성1 속성2 속성3"을 입력하면 자동체크됨.
|
||||
* 예) class="required validate-digits validate-white-space"
|
||||
* 값 존재여부. 숫자만 입력됐는지 체크. 공백만 입력됐는지 체크.
|
||||
* @param frm (form Elements)
|
||||
*/
|
||||
function fn_isValidate(frm){
|
||||
return Validator.validate(frm);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
var Validator = {
|
||||
|
||||
validate : function(form) {
|
||||
var elements = form.elements;
|
||||
for(var i = 0; i <elements.length;i++) {
|
||||
var el = elements[i];
|
||||
var classes = el.className.split(" ");
|
||||
for(var j = 0; j < classes.length; j++) {
|
||||
// 각 클래스 명
|
||||
var className = classes[j].replace(" ","");
|
||||
var param;
|
||||
|
||||
/* className에 '_'(언더바)가 포함된경우 토큰으로 잘라서 앞부분을 함수 명으로
|
||||
* 사용하고 뒷 부분을 인자로 취하도록 한다.
|
||||
*
|
||||
* 예 : validate-max-length_30
|
||||
* : validate-max-length(x, y, 30) 맨뒤의 30이 인자로 취해짐
|
||||
*
|
||||
* '_'가 여러개 포함 된 경우 이후 값들은 배열로 전달된다.(배열은 길이 제한이 없음)
|
||||
* 예 : validate-limit-length_10_30
|
||||
* : validate-limit-length(x, y, Array([10,30])) 10과 30이 배열로 넘겨짐
|
||||
*/
|
||||
if(className.indexOf("_") >= 0) {
|
||||
var tmpArray = className.split("_");
|
||||
className = tmpArray[0];
|
||||
tmpArray.shift();
|
||||
|
||||
if(tmpArray == null || tmpArray.length == 0) {
|
||||
param = "";
|
||||
} else if(tmpArray.length == 1) {
|
||||
param = tmpArray[0];
|
||||
} else {
|
||||
param = tmpArray;
|
||||
}
|
||||
}
|
||||
|
||||
// 클래스명과 일치하는 메서드가 있으면...
|
||||
if(Validator[className]) {
|
||||
var message = Validator[className](el.value,el,param);
|
||||
// 오류가 있으면 메시지를 반환
|
||||
if(message) {
|
||||
Validator._handleError(message, el);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
},
|
||||
|
||||
/**
|
||||
* 오류 제어
|
||||
* @param {String} message
|
||||
* @param {HTMLFormElement} el
|
||||
*/
|
||||
_handleError : function(message, el) {
|
||||
var title = Validator._getTitle(el);
|
||||
if(title != "")
|
||||
alert(title +"(은)는 " + message);
|
||||
else
|
||||
alert(message);
|
||||
el.style.backgroundColor="#fdfde4";
|
||||
el.focus();
|
||||
|
||||
},
|
||||
|
||||
_getTitle : function (el) {
|
||||
if (el.title)
|
||||
return el.title;
|
||||
else
|
||||
return "";
|
||||
},
|
||||
|
||||
// 필수입력(or선택)
|
||||
"required" : function(v,elm) {
|
||||
switch (elm.tagName) {
|
||||
case 'INPUT':
|
||||
var type = elm.type;
|
||||
if('checkbox'==type||'radio'==type){
|
||||
return validCheckboxOrRadio(v,elm);
|
||||
}
|
||||
else
|
||||
return validInput(v);
|
||||
break;
|
||||
case 'SELECT':
|
||||
return validSelectbox(v, elm);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
//Input Tag
|
||||
function validInput(v){
|
||||
return !v ? "반드시 입력하셔야 합니다." : false;
|
||||
}
|
||||
//Checkbox or Radio Tag
|
||||
function validCheckboxOrRadio(v,elm) {
|
||||
var field_obj = document.getElementsByName(elm.name);
|
||||
// var field_obj = elm;
|
||||
if (field_obj.length > 1) {
|
||||
for (var idx = 0; idx < field_obj.length; idx++) {
|
||||
if (field_obj[idx].checked) return false;
|
||||
}
|
||||
} else {
|
||||
if (field_obj.checked) return false;
|
||||
}
|
||||
return "항목을 선택하셔야 합니다.";
|
||||
}
|
||||
//Selectbox Tag
|
||||
function validSelectbox(v, elm) {
|
||||
var field_obj = document.getElementById(elm.name);
|
||||
// var field_obj = elm;
|
||||
|
||||
if(field_obj.options[field_obj.selectedIndex].value != "")
|
||||
return false;
|
||||
return "항목을 선택하셔야 합니다.";
|
||||
}
|
||||
},
|
||||
// white space 없이 입력
|
||||
"validate-white-space" : function(v) {
|
||||
return /\s+/.test(v) ? "공백없이 입력되야 합니다." : false;
|
||||
},
|
||||
// 숫자만 입력
|
||||
"validate-digits" : function(v) {
|
||||
return isNaN(v) || /[^\d]/.test(v)? "숫자만 입력하셔야 합니다." : false;
|
||||
},
|
||||
// 숫자와 하이픈(-)만 입력
|
||||
"validate-digits-" : function(v) {
|
||||
v = v.replace(/-/g, "");
|
||||
return isNaN(v) || /[^\d]/.test(v)? "숫자, 하이픈(-)만 입력하셔야 합니다." : false;
|
||||
},
|
||||
// 숫자와 포인트(.)만 입력
|
||||
"validate-digits-dot" : function(v) {
|
||||
v = v.replace(/\./g, "");
|
||||
return isNaN(v) || /[^\d]/.test(v)? "숫자, 포인트(.)만 입력하셔야 합니다." : false;
|
||||
},
|
||||
// 숫자와 콤마(,)만 입력
|
||||
"validate-digits-comma" : function(v) {
|
||||
v = v.replace(/\,/g, "");
|
||||
return isNaN(v) || /[^\d]/.test(v)? "숫자, 콤마(,)만 입력하셔야 합니다." : false;
|
||||
},
|
||||
// 숫자와 콤마(,),포인트(.)만 입력
|
||||
"validate-digits-comma-dot" : function(v) {
|
||||
v = v.replace(/\,\./g, "");
|
||||
return isNaN(v) || /[^\d]/.test(v)? "숫자, 콤마(,),포인트(.)만 입력하셔야 합니다." : false;
|
||||
},
|
||||
// 금액만 입력 가능(validate-digits-comma와 동일, 세자리콤마 자동추가 이벤트리스너 적용을 위해 추가 함)
|
||||
"validate-amount" : function(v) {
|
||||
v = v.replace(/\,/g, "");
|
||||
return isNaN(v) || /[^\d]/.test(v)? "숫자, 콤마(,)만 입력하셔야 합니다." : false;
|
||||
},
|
||||
// 아이디 형태 영문으로 시작하고 영문, 숫자, ., _ 를 사용
|
||||
"validate-id-format" : function(v){
|
||||
var ptrn1 = /^[^a-zA-Z]/; //false가 정상
|
||||
var ptrn2 = /[^a-zA-Z0-9._]/; //false가 정상 +
|
||||
return (ptrn1.test(v) || ptrn2.test(v)) ? "영문으로시작하고 영문(대소문자), 숫자, ., _ 만 입력 가능합니다." : false;
|
||||
},
|
||||
// 닉네임
|
||||
"validate-nickname-format" : function(v){
|
||||
var ptrn = /[^(가-힣a-zA-Z0-9)]/;
|
||||
return (ptrn.test(v)) ? "한글, 영문(대,소), 숫자만 입력 가능합니다." : false;
|
||||
},
|
||||
// 닉네임 + 스페이스 추가
|
||||
"validate-nickname-space-format" : function(v){
|
||||
var ptrn = /[^(가-힣a-zA-Z0-9\s+)]/;
|
||||
return (ptrn.test(v)) ? "한글, 영문(대,소), 숫자, 공백만 입력 가능합니다." : false;
|
||||
},
|
||||
// 차대번호
|
||||
"validate-vin-format" : function(v){
|
||||
var ptrn = /[^(A-Z0-9)]/;
|
||||
return (ptrn.test(v)) ? "영문(대문자), 숫자만 입력 가능합니다." : false;
|
||||
},
|
||||
// 영문으로 시작 입력
|
||||
"validate-alpha" : function(v) {
|
||||
return /[^a-zA-Z]+$/.test(v) ? "알파뱃으로 시작되도록 입력하셔야 합니다." : false;
|
||||
},
|
||||
// 영문, 숫자, _(언더바) 만 입력
|
||||
"validate-basic-char" : function(v) {
|
||||
return !/[a-zA-Z0-9_]/.test(v) ? "알파뱃, 숫자, 언더바(_)만 입력하셔야 합니다." : false;
|
||||
},
|
||||
// 영문과 숫자만 입력
|
||||
"validate-alpha-num" : function(v) {
|
||||
return /\W/.test(v) ? "알파뱃과 숫자만 입력하셔야 합니다." : false;
|
||||
},
|
||||
// 한글+ 숫자 조합만 입력
|
||||
"validate-kr-digits" : function(v){
|
||||
var ptrnKr = /[(가-힣)]/;
|
||||
var ptrnDigits = /[(0-9)]/;
|
||||
return (ptrnKr.test(v) && ptrnDigits.test(v)) ? false : "한글 + 숫자만 입력 가능합니다.";
|
||||
},
|
||||
// 날자 사용가능한 숫자 입력
|
||||
"validate-date" : function(v) {
|
||||
if("" != v){
|
||||
var date = new Date(v);
|
||||
return (isNaN(date.getFullYear()) || isNaN(date.getMonth()) || isNaN(date.getDate()) ) ? "올바른 날짜를 입력하셔야 합니다.(예 2001-01-01)" : false;
|
||||
}
|
||||
},
|
||||
// 유효한 email 입력
|
||||
"validate-email" : function(v) {
|
||||
if(v == "") return false;
|
||||
return !/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(v) ? "바른 이메일 주소를 입력하셔야 합니다." : false;
|
||||
},
|
||||
// 유효한 URL 입력
|
||||
"validate-url" : function(v) {
|
||||
if(v) {
|
||||
return !/^(http|https|ftp):\/\/(([a-zA-Z0-9][a-zA-Z0-9_-]*)(\.[a-zA-Z0-9][a-zA-Z0-9_-]*)?)(:(\d+))?\/?/i.test(v) ? "http://또는https://를 포함한 바른 URL을 입력하셔야 합니다." : false;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
// 유효한 주민번호 앞자리 검증
|
||||
"validate-front-jumin" : function(v) {
|
||||
|
||||
if (/[^\d]/.test(v) || v.length !=6 || isNaN(v)) {
|
||||
return "숫자 6자리여야 합니다.";
|
||||
}
|
||||
|
||||
return false ;
|
||||
},
|
||||
// 유요한 주민번호 뒷자리 검증
|
||||
"validate-back-jumin" : function(v) {
|
||||
var check_digit2;
|
||||
|
||||
if (/[^\d]/.test(v) || v.length!=7 || isNaN(v)) {
|
||||
return "숫자 7자리여야 합니다.";
|
||||
}
|
||||
|
||||
return false;
|
||||
},
|
||||
// 유효한 전체 주민번호 검증
|
||||
"validate-full-jumin" : function(v) {
|
||||
|
||||
val = v.replace(/-/g, "");
|
||||
|
||||
pin1 = val.substring(0,6);
|
||||
pin2 = val.substring(6,13);
|
||||
|
||||
if (pin1.length!=6 || isNaN(pin1)) {
|
||||
return " 앞자리는 6자리 숫자여야 합니다.";
|
||||
}
|
||||
|
||||
var a1=pin1.substring(0,1)
|
||||
var a2=pin1.substring(1,2)
|
||||
var a3=pin1.substring(2,3)
|
||||
var a4=pin1.substring(3,4)
|
||||
var a5=pin1.substring(4,5)
|
||||
var a6=pin1.substring(5,6)
|
||||
|
||||
check_digit1 = a1*2 + a2*3 + a3*4 + a4*5 + a5*6 + a6*7;
|
||||
|
||||
if (pin2.length!=7 || isNaN(pin2)) {
|
||||
return " 뒷자리는 7자리 숫자여야 합니다.";
|
||||
}
|
||||
|
||||
var b1=pin2.substring(0,1)
|
||||
var b2=pin2.substring(1,2)
|
||||
var b3=pin2.substring(2,3)
|
||||
var b4=pin2.substring(3,4)
|
||||
var b5=pin2.substring(4,5)
|
||||
var b6=pin2.substring(5,6)
|
||||
var b7=pin2.substring(6,7)
|
||||
|
||||
check_digit2 = check_digit1 + b1*8 + b2*9 + b3*2 + b4*3 + b5*4 + b6*5;
|
||||
|
||||
check_digit2 = check_digit2 % 11
|
||||
check_digit2 = 11 - check_digit2
|
||||
check_digit2 = check_digit2 % 10
|
||||
|
||||
if (check_digit2 != b7){
|
||||
return "유효하지 않는 주민등록번호입니다.";
|
||||
}
|
||||
|
||||
return false;
|
||||
},
|
||||
// BYTE 단위로 최대 글자수를 제한
|
||||
"validate-max-length" : function(v, elm, length) {
|
||||
var maxSize = parseInt(length, 10);
|
||||
var len = 0;
|
||||
var str = v.substring(0);
|
||||
if(str == null) return "길이를 확인할 값이 없습니다.";
|
||||
for(var i=0; i<str.length; i++) {
|
||||
var ch = escape(str.charAt(i));
|
||||
if(ch.length == 1) len++;
|
||||
else if(ch.indexOf("%u") != -1) len += 3;
|
||||
else if(ch.indexOf("%") != -1) len += ch.length/3;
|
||||
}
|
||||
|
||||
if(maxSize < len) {
|
||||
return "최대 "+maxSize+" byte 까지 입력 가능합니다.";
|
||||
}
|
||||
return false;
|
||||
},
|
||||
// BYTE 단위로 최소 글자수를 제한
|
||||
"validate-min-length" : function(v, elm, length) {
|
||||
var minSize = parseInt(length, 10);
|
||||
var len = 0;
|
||||
var str = v.substring(0);
|
||||
if(str == null) return "길이를 확인 할 값이 없습니다.";
|
||||
for(var i=0; i<str.length; i++) {
|
||||
var ch = escape(str.charAt(i));
|
||||
if(ch.length == 1) len++;
|
||||
else if(ch.indexOf("%u") != -1) len += 3;
|
||||
else if(ch.indexOf("%") != -1) len += ch.length/3;
|
||||
}
|
||||
|
||||
if(minSize > len) {
|
||||
return "최소 "+minSize+" byte 를 입력 해야 합니다.";
|
||||
}
|
||||
return false;
|
||||
},
|
||||
// BYTE 단위로 범위내의 글자수를 체크
|
||||
"validate-limit-length" : function(v, elm, param) {
|
||||
if(param.length == 2) {
|
||||
var minSize = parseInt(param[0], 10);
|
||||
var maxSize = parseInt(param[1], 10);
|
||||
var len = 0;
|
||||
var str = v.substring(0);
|
||||
if(str == null) return "길이를 확인 할 값이 없습니다.";
|
||||
for(var i=0; i<str.length; i++) {
|
||||
var ch = escape(str.charAt(i));
|
||||
if(ch.length == 1) len++;
|
||||
else if(ch.indexOf("%u") != -1) len += 3;
|
||||
else if(ch.indexOf("%") != -1) len += ch.length/3;
|
||||
}
|
||||
|
||||
if(minSize > len || maxSize < len) {
|
||||
//return "최소 "+minSize+" byte 보다 같거나 크고, "+maxSize+" 보다 같거나 작아야 합니다.";
|
||||
return "최소 "+minSize+"자 이상, "+maxSize+"자 이하여야 합니다.";
|
||||
}
|
||||
} else {
|
||||
return "최소 값과 최대 값 두개의 배열 인자가 필요합니다.";
|
||||
}
|
||||
|
||||
return false;
|
||||
},
|
||||
// 전화번호 유효성 체크 02-222-2222 형식 '-' 토큰으로 잘라서 검증함
|
||||
"validate-tel-num" : function(v, elm, param) {
|
||||
if(v) {
|
||||
val = v.replace(/-/g, "");
|
||||
|
||||
if(isNaN(val)) {
|
||||
return "숫자, - 만 입력하셔야 합니다.";
|
||||
}
|
||||
|
||||
var tmpArray = v.split("-");
|
||||
if(tmpArray.length != 3) {
|
||||
return "-를 포함하여 정확히 입력하셔야 합니다.";
|
||||
}
|
||||
|
||||
for(i = 0; i < tmpArray.length; i++ ) {
|
||||
if(tmpArray[i] == "") return "정확히 입력하셔야 합니다.";
|
||||
if(tmpArray[i].length <2 || tmpArray[i].size >4) return "정확히 입력하셔야 합니다.";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return false;
|
||||
},
|
||||
// 사업자번호 유효성 체크 000-00-00000 형식 '-' 토큰으로 잘라서 검증함
|
||||
"validate-biz-num" : function(v, elm, param) {
|
||||
if(v) {
|
||||
val = v.replace(/-/g, "");
|
||||
|
||||
if(isNaN(val)) {
|
||||
return "숫자, - 만 입력하셔야 합니다.";
|
||||
}
|
||||
|
||||
var tmpArray = v.split("-");
|
||||
if(tmpArray.length != 3) {
|
||||
return "-를 포함하여 정확히 입력하셔야 합니다.";
|
||||
}
|
||||
|
||||
for(i = 0; i < tmpArray.length; i++ ) {
|
||||
if(tmpArray[i] == "") return "정확히 입력하셔야 합니다.";
|
||||
if(tmpArray[i].length <2 || tmpArray[i].size >5) return "정확히 입력하셔야 합니다.";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return false;
|
||||
},
|
||||
// 웹상에서 사용가능한 이미지 파일 종류인지 확인한다. gif, jpg, png 만 인정함
|
||||
"validate-is-image" : function(v) {
|
||||
if(v) {
|
||||
var ext = "";
|
||||
if(v.indexOf(".") >= 0) {
|
||||
ext = v.substring(v.lastIndexOf(".")+1);
|
||||
ext = ext.toLowerCase();
|
||||
if(ext.length != 3 || !(ext == "gif" || ext == "jpg" || ext == "jpeg" || ext == "png" || ext == "bmp"))
|
||||
return "파일은 gif, jpg, png 파일만 등록을 하실수 있습니다.";
|
||||
} else {
|
||||
return "파일의 확장자가 없습니다.";
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
"validate-ip" :function(v){
|
||||
if(v){
|
||||
var ip4Ptrn = /^((25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){2,3}[,]?)+$/;
|
||||
if(!ip4Ptrn.test(v)){
|
||||
return "아이피 형식이 아닙니다. x.x.x 또는 x.x.x.x 형식으로 입력해주세요.";
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue