正则验证
来源:互联网 发布:上海软件协会网站 编辑:程序博客网 时间:2024/05/01 00:13
var validationErrorMessage = new Object();
validationErrorMessage['required'] = '不可以为空';
validationErrorMessage['numeric'] = '只能输入数字';
validationErrorMessage['postcode'] = 'This field must hold a Dutch postal code';
validationErrorMessage['pattern'] = 'Pattern incorrect';
validationErrorMessage['email'] = '邮箱格式不正确(如:abc@example.com)';
validationErrorMessage['noallnum'] = '不能全是数字或者下划线';
validationErrorMessage['username'] = '4-16位字符(英文小写、数字、下划线)';
validationErrorMessage['password'] = '6-16位字符(字母、数字、符号)';
validationErrorMessage['chinesename'] = '2-6位汉字';
validationErrorMessage['nickname'] = '4-20位字符(英文小写、数字、汉字)';
validationErrorMessage['phonenum'] = '不超过15位的数字';
validationErrorMessage['keywords'] = '不超过5个,每个最多10个汉字(20个字符)';
validationErrorMessage['usernamemsg'] = '4-16位字符(英文小写、数字、下划线)不能全是数字和下划线';
validationErrorMessage['lengthfunmsg'] = '不超过400个字符(200个汉字)';
validationErrorMessage['descmsg'] = '不超过400个字符(200个汉字)';
validationErrorMessage['correct'] = '恭喜正确';
var validationFunctions = new Object();
validationFunctions["required"] = isRequired;
validationFunctions["pattern"] = isPattern;
validationFunctions["postcode"] = isPostCode;
validationFunctions["numeric"] = isnumeric;
validationFunctions["email"] = isEmail;
validationFunctions["noallnum"] = isNoAllNum;
validationFunctions["username"] = isusername;
validationFunctions["password"] = isPassWord;
validationFunctions["chinesename"] = isChineseName;
validationFunctions["nickname"] = isNickName;
validationFunctions["phonenum"] = isPhoneNum;
validationFunctions["lengthfun"] = isLengthFun;
validationFunctions["keywords"] = keyWords;
function RTrim(str){
var i;
for(i=str.length-1;i>=0;i--){
if(str.charAt(i)!=" "&&str.charAt(i)!=" ") break;
}
str = str.substring(0,i+1);
return str;
}
function LTrim(str){ //去掉字符串 的头空格
var i;
for(i=0;i<str.length;i++){
if(str.charAt(i)!=" "&&str.charAt(i)!=" ") {
break;
}
}
str = str.substring(i,str.length);
return str;
}
function trim(str){
return LTrim(RTrim(str));
}
function keyWords(formField){
var str = (formField.value) ;
var arr = str.split(',');
if(!str){
return true;
}
if(arr.length > 5){
return false;
}
for(var i=0;i<arr.length;i++){
var l = arr[i].replace(/[^\x00-\xff]/g, "**").length;
if(l > 20 || !arr[i]){
return false;
}
}
return true;
}
function isLengthFun(formField){
var str = trim(formField.value) ;
var fieldLength = str.replace(/[^\x00-\xff]/g, "**").length;
var len = formField.getAttribute('len');
var lens = len.split(' ');
if(fieldLength > lens[1] || fieldLength < lens[0]){
validationErrorMessage['lengthfun']='长度在'+lens[0]+'-'+lens[1]+'之间('+parseInt(lens[1]/2)+'个汉字)';
return false;
}
return true;
}
function isRequired(formField) {
switch (formField.type) {
case 'text':
case 'textarea':
case 'select-one':
if (formField.value)
return true;
return false;
case 'radio':
var radios = formField.form[formField.name];
for (var i = 0; i < radios.length; i++) {
if (radios[i].checked) return true;
}
return false;
case 'checkbox':
return formField.checked;
}
}
function isPattern(formField, pattern) {
var correct = pattern.test(formField.value);
if (!correct && formField.getAttribute('patternDesc'))
correct = formField.getAttribute('patternDesc');
return correct;
}
function isPostCode(formField) {
return isPattern(formField, "\\d{4}\\s*\\D{2}");
}
function isnumeric(formField) {
return isPattern(formField, "\\d+");
}
function isEmail(formField) {
var regExp = /^(?:[a-z\d]+[_\-\+\.]?)*[a-z\d]+@(?:([a-z\d]+\-?)*[a-z\d]+\.)+([a-z]{2,})+$/i;
return isPattern(formField,regExp);
}
function isNoAllNum(formField) {
var regExp = /^(?!\d+$)(?!_+$)/;
return isPattern(formField, regExp);
}
function isusername(formField) {
var regExp = /^([a-z0-9_]){4,16}$/;
return isPattern(formField, regExp);
}
function emptyFunction() {
return true;
}
//
function isPassWord(formField) {
var regExp = /^[0-9a-zA-Z\_!~@&#$%^*+=,.?;'":)(}{/\\\|]{6,16}$/;
return isPattern(formField, regExp);
}
//
function isChineseName(formField) {
var regExp = /^[\u4e00-\u9fa5]{2,6}$/;
return isPattern(formField, regExp);
}
// var b= /^[a-z0-9\u4e00-\u9fa5]{4,20}$/;
function isNickName(formField) {
var regExp =/^[a-z0-9\u4e00-\u9fa5]{4,20}$/;
return isPattern(formField, regExp);
}
function isPhoneNum(formField) {
var regExp =/^[0-9]{0,15}$/;
return isPattern(formField, regExp);
}
/*********************************/
// var W3CDOM = document.createElement && document.getElementsByTagName;
//
// function validateForms(id) {
// // if (!W3CDOM) return;
//console.log(id)
// var forms = document.getElementById(id);
// console.log(forms)
// forms.onsubmit = validate;
// for (var i=0;i<forms.length;i++) {
// forms[i].onsubmit = validate;
//// }
//}
// addEventSimple(window,'load',validateForms);
function validate(id) {
var form = document.getElementById(id);
var els = form.elements;
var validForm = true;
var firstError = null;
for (var i = 0; i < els.length; i++) {
if (els[i].removeError)
els[i].removeError();
var req = els[i].getAttribute('validation');
if (!req) continue;
var reqs = req.split(' ');
onChangeMessage(els[i]);
if (els[i].getAttribute('pattern'))
reqs[reqs.length] = 'pattern';
for (var j = 1; j < reqs.length; j++) {
// if (!validationFunctions[reqs[j]])
// validationFunctions[reqs[j]] = emptyFunction;
var OK = validationFunctions[reqs[j]](els[i]);
if(OK){
writeRightMessage(els[i], validationErrorMessage['correct']);
}
if (OK != true) {
var errorMessage = OK || validationErrorMessage[reqs[j]];
writeErrorMessage(els[i], errorMessage)
validForm = false;
if (!firstError)
firstError = els[i];
break;
}
}
}
if(validForm){
for (var i = 0; i < els.length; i++) {
var r = els[i].getAttribute('validation');
if (!r) continue;
var rs = r.split(' ');
els[i].nextSibling.innerHTML= validationErrorMessage[rs[0]];
removeClassName (els[i].nextSibling, "onCorrect");
removeClassName (els[i].nextSibling, "onError");
}
}
return validForm;
}
function onChangeMessage(obj){
obj.onchange = removeError;
obj.labelObj = obj.nextSibling;
// obj.msg = obj.nextSibling.innerHTML;
}
function writeRightMessage(obj, message) {
obj.labelObj.innerHTML = message;
obj.labelObj.className = "onCorrect";
}
function writeErrorMessage(obj, message) {
obj.labelObj.innerHTML = message;
obj.labelObj.className = "onError";
}
function removeError() {
this.labelObj.innerHTML ="";
}
function removeClassName (element, className)
{
if (!element) return;
var elementClassName = element.className;
if (elementClassName.length == 0) return;
if(elementClassName == className)
{
element.className = "";
return;
}
if (elementClassName.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))
element.className = elementClassName.replace((new RegExp("(^|\\s)" + className + "(\\s|$)"))," ");
}
var validationErrorMessage = new Object();
validationErrorMessage['required'] = '不可以能为空';
validationErrorMessage['numeric'] = '只能输入数字';
validationErrorMessage['postcode'] = 'This field must hold a Dutch postal code';
validationErrorMessage['pattern'] = 'Pattern incorrect';
validationErrorMessage['email'] = '邮箱格式不正确(如:abc@example.com)';
validationErrorMessage['noallnum'] = '不能全是数字或者下划线';
validationErrorMessage['username'] = '4-16位字符(英文小写、数字、下划线)';
validationErrorMessage['password'] = '6-16位字符(字母、数字、符号)';
validationErrorMessage['chinesename'] = '1-20位字符';
validationErrorMessage['nickname'] = '4-20位字符(英文小写、数字、汉字)';
validationErrorMessage['phonenum'] = '不超过15位的数字';
validationErrorMessage['keywords'] = '不超过5个,以逗号分开,每个最多10个汉字(20个字符)';
validationErrorMessage['usernamemsg'] = '4-16位字符(英文小写、数字、下划线)不能全是数字和下划线';
validationErrorMessage['lengthfunmsg'] = '不超过400个字符(200个汉字)';
validationErrorMessage['descmsg'] = '不超过400个字符(200个汉字)';
validationErrorMessage['resnamemsg'] = '不超过100个字符(50个汉字)';
validationErrorMessage['teachermsg'] = '1-20位字符';
validationErrorMessage['requiredmsg'] = '请选择一项';
validationErrorMessage['keywordsmsg'] = '不超过5个,以逗号分开,每个最多10个汉字(20个字符)';
validationErrorMessage['nicknamemsg'] = '4-20位字符(英文小写、数字、汉字)汉字算两个';
validationErrorMessage['emailmsg'] = '请输入正确的邮箱格式(如:abc@example.com)';
validationErrorMessage['correct'] = '恭喜正确';
validationErrorMessage['psdmsg'] = '6-16位字符(字母、数字、符号';
function keyWords(formField) {
var arr = formField.split(',');
if (!formField) {
return true;
}
if (arr.length > 5) {
return false;
}
for (var i = 0; i < arr.length; i++) {
var l = arr[i].replace(/[^\x00-\xff]/g, "**").length;
if (l > 20 || !arr[i]) {
return false;
}
}
return true;
}
function isUserName(formField) {
var regExp = /^([a-z0-9_]){4,16}$/;
return regExp.test(formField);
}
function isNoAllNum(formField) {
var regExp = /^(?!\d+$)(?!_+$)/;
return regExp.test(formField);
}
function isChineseName(formField) {
var regExp = /^[\u4e00-\u9fa5]{2,6}$/;
return regExp.test(formField);
}
function isPhoneNum(formField) {
var regExp = /^[0-9]{0,15}$/;
return regExp.test(formField);
}
function isIp(formField) {
var regExp = /^(?:(?:25[0-5]|2[0-4]\d|[1-9]\d?|1\d\d)\.)((?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){2}(?:25[0-5]|2[0-4]\d|[01]?\d?\d))$/;
return regExp.test(formField);
}
function fieldLength(formField, len1, len2) {
var len = formField.replace(/[^\x00-\xff]/g, "**").length;
if (len > len2 || len <len1) {
return false;
}
return true;
}
$.extend($.fn.validatebox.defaults.rules, {
descLength: {
validator: function (value, param) {
var v = $.trim(value);
return fieldLength(v, param[0], param[1]);
},
message: validationErrorMessage['descmsg']
}
});
$.extend($.fn.validatebox.defaults.rules, {
itemLength: {
validator: function (value, param) {
var v = $.trim(value);
return fieldLength(v, param[0], param[1]);
},
message: "不超过20个字符(10个汉字)"
}
});
$.extend($.fn.validatebox.defaults.rules, {
titleLength: {
validator: function (value, param) {
var v = $.trim(value);
return fieldLength(v, param[0], param[1]);
},
message: validationErrorMessage['resnamemsg']
}
});
$.extend($.fn.validatebox.defaults.rules, {
desc: {
validator: function (value, param) {
var v = $.trim(value);
return keyWords(v);
},
message: validationErrorMessage['descmsg']
}
});
$.extend($.fn.validatebox.defaults.rules, {
keyWords: {
validator: function (value, param) {
var v = $.trim(value);
return keyWords(v);
},
message: validationErrorMessage['keywordsmsg']
}
});
$.extend($.fn.validatebox.defaults.rules, {
isPhoneNum: {
validator: function (value, param) {
var v = $.trim(value);
return isPhoneNum(v);
},
message: validationErrorMessage['phonenum']
}
});
$.extend($.fn.validatebox.defaults.rules, {
isChineseName: {
validator: function (value, param) {
var str = $.trim(value);
var fieldLength = str.replace(/[^\x00-\xff]/g, "**").length;
if(str.length==0){
return true
}
else if(fieldLength > 20||fieldLength < 1){
return false;
}
return true;
},
message: validationErrorMessage['teachermsg']
}
});
$.extend($.fn.validatebox.defaults.rules, {
checkLoginName: {
validator: function (value, param) {
var v = $.trim(value);
var len = v.length;
return isNoAllNum(v) && len >= param[0] && len <= param[1] && /^[0-9a-zA-Z_]+$/.test(v);
},
message: validationErrorMessage['usernamemsg']
}
});
$.extend($.fn.validatebox.defaults.rules, {
validAllNumber: {
validator: function (value, param) {
var v = $.trim(value);
return isNoAllNum(v);
},
message: "不能全部是数字和下划线."
}
});
$.extend($.fn.validatebox.defaults.rules, {
validIp: {
validator: function (value, param) {
return isIp(value);
},
message: "IP格式不对."
}
});
$.extend($.fn.validatebox.methods, {
removeTip: function (jq) {
return jq.each(function () {
var tip = $.data(this, "validatebox").tip;
if (tip) {
tip.remove();
$.data(this, "validatebox").tip = null;
}
});
}
});
$.extend($.fn.validatebox.defaults.rules, {
validPath: {
validator: function (value, param) {
var v = $.trim(value);
var b = /\\/gi;
var c = v.replace(b, '\\\\');
return /^[a-zA-Z]:\\[^/:*?"<>|]+$/.test(c);
},
message: "路径格式不对."
}
});
$.extend($.fn.validatebox.defaults.rules, {
numeric: {
validator: function (value, param) {
return /^(0|[1-9]\d*)$/.test(value);
},
message: "请输入数字."
}
});
$.extend($.fn.validatebox.defaults.rules, {
powernumber: {
validator: function (value, param) {
var flag1=/^[1-9]\d*$/.test(value);
var flag2=Boolean(value>=1&&value<=100);
return flag1&&flag2;
// return /^((0\.[0-9]{1,2})|(1(\.(0+))?))$/.test(value);
},
// message: "请输入0.1~1.0之间保留两位小数的数字."
message: "请输入1~100之间的数字."
}
});
$.extend($.fn.validatebox.defaults.rules, {
sizenumber: {
validator: function (value, param) {
var flag1=/^[1-9]\d*$/.test(value);
var flag2=Boolean(value>=1&&value<=1000);
return flag1&&flag2;
// return /^((0\.[0-9]{1,2})|(1(\.(0+))?))$/.test(value);
},
// message: "请输入0.1~1.0之间保留两位小数的数字."
message: "请输入1~1000之间的数字."
}
});
$.extend($.fn.validatebox.defaults.rules, {
numerSpecil: {
validator: function (value, param) {
var flag3=(value=="-1");
var flag4=/^(0|[1-9]\d*)$/.test(value);
return flag3||flag4;
},
message: "请输入-1或者其他数字."
}
});
$.extend($.fn.validatebox.defaults.rules, {
portnumer: {
validator: function (value, param) {
var flag1=/^[\d]+$/.test(value);
var flag2=(value>=1)&&(value<=65535);
return flag1&&flag2;
},
message: "请输入1到65535之间的数字."
}
});
function transformDate(date) {
if(date){
var jstr = '{"d":"' + date + '"}'
var reg = new RegExp('"/Date\\((-?[0-9]+)\\)/"', 'g');
d = jstr.replace(reg, "new Date($1)");
obj = eval('(' + d + ')');
return DateFormat.format(obj.d, 'yyyy-MM-dd hh:mm:ss'); ;
}
}
DateFormat = (function () {
var SIGN_REGEXP = /([yMdhsm])(\1*)/g;
var DEFAULT_PATTERN = 'yyyy-MM-dd';
function padding(s, len) {
var len = len - (s + '').length;
for (var i = 0; i < len; i++) { s = '0' + s; }
return s;
};
return ({
format: function (date, pattern) {
pattern = pattern || DEFAULT_PATTERN;
return pattern.replace(SIGN_REGEXP, function ($0) {
switch ($0.charAt(0)) {
case 'y': return padding(date.getFullYear(), $0.length);
case 'M': return padding(date.getMonth() + 1, $0.length);
case 'd': return padding(date.getDate(), $0.length);
case 'w': return date.getDay() + 1;
case 'h': return padding(date.getHours(), $0.length);
case 'm': return padding(date.getMinutes(), $0.length);
case 's': return padding(date.getSeconds(), $0.length);
}
});
},
parse: function (dateString, pattern) {
var matchs1 = pattern.match(SIGN_REGEXP);
var matchs2 = dateString.match(/(\d)+/g);
if (matchs1.length == matchs2.length) {
var _date = new Date(1970, 0, 1);
for (var i = 0; i < matchs1.length; i++) {
var _int = parseInt(matchs2[i]);
var sign = matchs1[i];
switch (sign.charAt(0)) {
case 'y': _date.setFullYear(_int); break;
case 'M': _date.setMonth(_int - 1); break;
case 'd': _date.setDate(_int); break;
case 'h': _date.setHours(_int); break;
case 'm': _date.setMinutes(_int); break;
case 's': _date.setSeconds(_int); break;
}
}
return _date;
}
return null;
}
});
})();
validationErrorMessage['required'] = '不可以为空';
validationErrorMessage['numeric'] = '只能输入数字';
validationErrorMessage['postcode'] = 'This field must hold a Dutch postal code';
validationErrorMessage['pattern'] = 'Pattern incorrect';
validationErrorMessage['email'] = '邮箱格式不正确(如:abc@example.com)';
validationErrorMessage['noallnum'] = '不能全是数字或者下划线';
validationErrorMessage['username'] = '4-16位字符(英文小写、数字、下划线)';
validationErrorMessage['password'] = '6-16位字符(字母、数字、符号)';
validationErrorMessage['chinesename'] = '2-6位汉字';
validationErrorMessage['nickname'] = '4-20位字符(英文小写、数字、汉字)';
validationErrorMessage['phonenum'] = '不超过15位的数字';
validationErrorMessage['keywords'] = '不超过5个,每个最多10个汉字(20个字符)';
validationErrorMessage['usernamemsg'] = '4-16位字符(英文小写、数字、下划线)不能全是数字和下划线';
validationErrorMessage['lengthfunmsg'] = '不超过400个字符(200个汉字)';
validationErrorMessage['descmsg'] = '不超过400个字符(200个汉字)';
validationErrorMessage['correct'] = '恭喜正确';
var validationFunctions = new Object();
validationFunctions["required"] = isRequired;
validationFunctions["pattern"] = isPattern;
validationFunctions["postcode"] = isPostCode;
validationFunctions["numeric"] = isnumeric;
validationFunctions["email"] = isEmail;
validationFunctions["noallnum"] = isNoAllNum;
validationFunctions["username"] = isusername;
validationFunctions["password"] = isPassWord;
validationFunctions["chinesename"] = isChineseName;
validationFunctions["nickname"] = isNickName;
validationFunctions["phonenum"] = isPhoneNum;
validationFunctions["lengthfun"] = isLengthFun;
validationFunctions["keywords"] = keyWords;
function RTrim(str){
var i;
for(i=str.length-1;i>=0;i--){
if(str.charAt(i)!=" "&&str.charAt(i)!=" ") break;
}
str = str.substring(0,i+1);
return str;
}
function LTrim(str){ //去掉字符串 的头空格
var i;
for(i=0;i<str.length;i++){
if(str.charAt(i)!=" "&&str.charAt(i)!=" ") {
break;
}
}
str = str.substring(i,str.length);
return str;
}
function trim(str){
return LTrim(RTrim(str));
}
function keyWords(formField){
var str = (formField.value) ;
var arr = str.split(',');
if(!str){
return true;
}
if(arr.length > 5){
return false;
}
for(var i=0;i<arr.length;i++){
var l = arr[i].replace(/[^\x00-\xff]/g, "**").length;
if(l > 20 || !arr[i]){
return false;
}
}
return true;
}
function isLengthFun(formField){
var str = trim(formField.value) ;
var fieldLength = str.replace(/[^\x00-\xff]/g, "**").length;
var len = formField.getAttribute('len');
var lens = len.split(' ');
if(fieldLength > lens[1] || fieldLength < lens[0]){
validationErrorMessage['lengthfun']='长度在'+lens[0]+'-'+lens[1]+'之间('+parseInt(lens[1]/2)+'个汉字)';
return false;
}
return true;
}
function isRequired(formField) {
switch (formField.type) {
case 'text':
case 'textarea':
case 'select-one':
if (formField.value)
return true;
return false;
case 'radio':
var radios = formField.form[formField.name];
for (var i = 0; i < radios.length; i++) {
if (radios[i].checked) return true;
}
return false;
case 'checkbox':
return formField.checked;
}
}
function isPattern(formField, pattern) {
var correct = pattern.test(formField.value);
if (!correct && formField.getAttribute('patternDesc'))
correct = formField.getAttribute('patternDesc');
return correct;
}
function isPostCode(formField) {
return isPattern(formField, "\\d{4}\\s*\\D{2}");
}
function isnumeric(formField) {
return isPattern(formField, "\\d+");
}
function isEmail(formField) {
var regExp = /^(?:[a-z\d]+[_\-\+\.]?)*[a-z\d]+@(?:([a-z\d]+\-?)*[a-z\d]+\.)+([a-z]{2,})+$/i;
return isPattern(formField,regExp);
}
function isNoAllNum(formField) {
var regExp = /^(?!\d+$)(?!_+$)/;
return isPattern(formField, regExp);
}
function isusername(formField) {
var regExp = /^([a-z0-9_]){4,16}$/;
return isPattern(formField, regExp);
}
function emptyFunction() {
return true;
}
//
function isPassWord(formField) {
var regExp = /^[0-9a-zA-Z\_!~@&#$%^*+=,.?;'":)(}{/\\\|]{6,16}$/;
return isPattern(formField, regExp);
}
//
function isChineseName(formField) {
var regExp = /^[\u4e00-\u9fa5]{2,6}$/;
return isPattern(formField, regExp);
}
// var b= /^[a-z0-9\u4e00-\u9fa5]{4,20}$/;
function isNickName(formField) {
var regExp =/^[a-z0-9\u4e00-\u9fa5]{4,20}$/;
return isPattern(formField, regExp);
}
function isPhoneNum(formField) {
var regExp =/^[0-9]{0,15}$/;
return isPattern(formField, regExp);
}
/*********************************/
// var W3CDOM = document.createElement && document.getElementsByTagName;
//
// function validateForms(id) {
// // if (!W3CDOM) return;
//console.log(id)
// var forms = document.getElementById(id);
// console.log(forms)
// forms.onsubmit = validate;
// for (var i=0;i<forms.length;i++) {
// forms[i].onsubmit = validate;
//// }
//}
// addEventSimple(window,'load',validateForms);
function validate(id) {
var form = document.getElementById(id);
var els = form.elements;
var validForm = true;
var firstError = null;
for (var i = 0; i < els.length; i++) {
if (els[i].removeError)
els[i].removeError();
var req = els[i].getAttribute('validation');
if (!req) continue;
var reqs = req.split(' ');
onChangeMessage(els[i]);
if (els[i].getAttribute('pattern'))
reqs[reqs.length] = 'pattern';
for (var j = 1; j < reqs.length; j++) {
// if (!validationFunctions[reqs[j]])
// validationFunctions[reqs[j]] = emptyFunction;
var OK = validationFunctions[reqs[j]](els[i]);
if(OK){
writeRightMessage(els[i], validationErrorMessage['correct']);
}
if (OK != true) {
var errorMessage = OK || validationErrorMessage[reqs[j]];
writeErrorMessage(els[i], errorMessage)
validForm = false;
if (!firstError)
firstError = els[i];
break;
}
}
}
if(validForm){
for (var i = 0; i < els.length; i++) {
var r = els[i].getAttribute('validation');
if (!r) continue;
var rs = r.split(' ');
els[i].nextSibling.innerHTML= validationErrorMessage[rs[0]];
removeClassName (els[i].nextSibling, "onCorrect");
removeClassName (els[i].nextSibling, "onError");
}
}
return validForm;
}
function onChangeMessage(obj){
obj.onchange = removeError;
obj.labelObj = obj.nextSibling;
// obj.msg = obj.nextSibling.innerHTML;
}
function writeRightMessage(obj, message) {
obj.labelObj.innerHTML = message;
obj.labelObj.className = "onCorrect";
}
function writeErrorMessage(obj, message) {
obj.labelObj.innerHTML = message;
obj.labelObj.className = "onError";
}
function removeError() {
this.labelObj.innerHTML ="";
}
function removeClassName (element, className)
{
if (!element) return;
var elementClassName = element.className;
if (elementClassName.length == 0) return;
if(elementClassName == className)
{
element.className = "";
return;
}
if (elementClassName.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))
element.className = elementClassName.replace((new RegExp("(^|\\s)" + className + "(\\s|$)"))," ");
}
var validationErrorMessage = new Object();
validationErrorMessage['required'] = '不可以能为空';
validationErrorMessage['numeric'] = '只能输入数字';
validationErrorMessage['postcode'] = 'This field must hold a Dutch postal code';
validationErrorMessage['pattern'] = 'Pattern incorrect';
validationErrorMessage['email'] = '邮箱格式不正确(如:abc@example.com)';
validationErrorMessage['noallnum'] = '不能全是数字或者下划线';
validationErrorMessage['username'] = '4-16位字符(英文小写、数字、下划线)';
validationErrorMessage['password'] = '6-16位字符(字母、数字、符号)';
validationErrorMessage['chinesename'] = '1-20位字符';
validationErrorMessage['nickname'] = '4-20位字符(英文小写、数字、汉字)';
validationErrorMessage['phonenum'] = '不超过15位的数字';
validationErrorMessage['keywords'] = '不超过5个,以逗号分开,每个最多10个汉字(20个字符)';
validationErrorMessage['usernamemsg'] = '4-16位字符(英文小写、数字、下划线)不能全是数字和下划线';
validationErrorMessage['lengthfunmsg'] = '不超过400个字符(200个汉字)';
validationErrorMessage['descmsg'] = '不超过400个字符(200个汉字)';
validationErrorMessage['resnamemsg'] = '不超过100个字符(50个汉字)';
validationErrorMessage['teachermsg'] = '1-20位字符';
validationErrorMessage['requiredmsg'] = '请选择一项';
validationErrorMessage['keywordsmsg'] = '不超过5个,以逗号分开,每个最多10个汉字(20个字符)';
validationErrorMessage['nicknamemsg'] = '4-20位字符(英文小写、数字、汉字)汉字算两个';
validationErrorMessage['emailmsg'] = '请输入正确的邮箱格式(如:abc@example.com)';
validationErrorMessage['correct'] = '恭喜正确';
validationErrorMessage['psdmsg'] = '6-16位字符(字母、数字、符号';
function keyWords(formField) {
var arr = formField.split(',');
if (!formField) {
return true;
}
if (arr.length > 5) {
return false;
}
for (var i = 0; i < arr.length; i++) {
var l = arr[i].replace(/[^\x00-\xff]/g, "**").length;
if (l > 20 || !arr[i]) {
return false;
}
}
return true;
}
function isUserName(formField) {
var regExp = /^([a-z0-9_]){4,16}$/;
return regExp.test(formField);
}
function isNoAllNum(formField) {
var regExp = /^(?!\d+$)(?!_+$)/;
return regExp.test(formField);
}
function isChineseName(formField) {
var regExp = /^[\u4e00-\u9fa5]{2,6}$/;
return regExp.test(formField);
}
function isPhoneNum(formField) {
var regExp = /^[0-9]{0,15}$/;
return regExp.test(formField);
}
function isIp(formField) {
var regExp = /^(?:(?:25[0-5]|2[0-4]\d|[1-9]\d?|1\d\d)\.)((?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){2}(?:25[0-5]|2[0-4]\d|[01]?\d?\d))$/;
return regExp.test(formField);
}
function fieldLength(formField, len1, len2) {
var len = formField.replace(/[^\x00-\xff]/g, "**").length;
if (len > len2 || len <len1) {
return false;
}
return true;
}
$.extend($.fn.validatebox.defaults.rules, {
descLength: {
validator: function (value, param) {
var v = $.trim(value);
return fieldLength(v, param[0], param[1]);
},
message: validationErrorMessage['descmsg']
}
});
$.extend($.fn.validatebox.defaults.rules, {
itemLength: {
validator: function (value, param) {
var v = $.trim(value);
return fieldLength(v, param[0], param[1]);
},
message: "不超过20个字符(10个汉字)"
}
});
$.extend($.fn.validatebox.defaults.rules, {
titleLength: {
validator: function (value, param) {
var v = $.trim(value);
return fieldLength(v, param[0], param[1]);
},
message: validationErrorMessage['resnamemsg']
}
});
$.extend($.fn.validatebox.defaults.rules, {
desc: {
validator: function (value, param) {
var v = $.trim(value);
return keyWords(v);
},
message: validationErrorMessage['descmsg']
}
});
$.extend($.fn.validatebox.defaults.rules, {
keyWords: {
validator: function (value, param) {
var v = $.trim(value);
return keyWords(v);
},
message: validationErrorMessage['keywordsmsg']
}
});
$.extend($.fn.validatebox.defaults.rules, {
isPhoneNum: {
validator: function (value, param) {
var v = $.trim(value);
return isPhoneNum(v);
},
message: validationErrorMessage['phonenum']
}
});
$.extend($.fn.validatebox.defaults.rules, {
isChineseName: {
validator: function (value, param) {
var str = $.trim(value);
var fieldLength = str.replace(/[^\x00-\xff]/g, "**").length;
if(str.length==0){
return true
}
else if(fieldLength > 20||fieldLength < 1){
return false;
}
return true;
},
message: validationErrorMessage['teachermsg']
}
});
$.extend($.fn.validatebox.defaults.rules, {
checkLoginName: {
validator: function (value, param) {
var v = $.trim(value);
var len = v.length;
return isNoAllNum(v) && len >= param[0] && len <= param[1] && /^[0-9a-zA-Z_]+$/.test(v);
},
message: validationErrorMessage['usernamemsg']
}
});
$.extend($.fn.validatebox.defaults.rules, {
validAllNumber: {
validator: function (value, param) {
var v = $.trim(value);
return isNoAllNum(v);
},
message: "不能全部是数字和下划线."
}
});
$.extend($.fn.validatebox.defaults.rules, {
validIp: {
validator: function (value, param) {
return isIp(value);
},
message: "IP格式不对."
}
});
$.extend($.fn.validatebox.methods, {
removeTip: function (jq) {
return jq.each(function () {
var tip = $.data(this, "validatebox").tip;
if (tip) {
tip.remove();
$.data(this, "validatebox").tip = null;
}
});
}
});
$.extend($.fn.validatebox.defaults.rules, {
validPath: {
validator: function (value, param) {
var v = $.trim(value);
var b = /\\/gi;
var c = v.replace(b, '\\\\');
return /^[a-zA-Z]:\\[^/:*?"<>|]+$/.test(c);
},
message: "路径格式不对."
}
});
$.extend($.fn.validatebox.defaults.rules, {
numeric: {
validator: function (value, param) {
return /^(0|[1-9]\d*)$/.test(value);
},
message: "请输入数字."
}
});
$.extend($.fn.validatebox.defaults.rules, {
powernumber: {
validator: function (value, param) {
var flag1=/^[1-9]\d*$/.test(value);
var flag2=Boolean(value>=1&&value<=100);
return flag1&&flag2;
// return /^((0\.[0-9]{1,2})|(1(\.(0+))?))$/.test(value);
},
// message: "请输入0.1~1.0之间保留两位小数的数字."
message: "请输入1~100之间的数字."
}
});
$.extend($.fn.validatebox.defaults.rules, {
sizenumber: {
validator: function (value, param) {
var flag1=/^[1-9]\d*$/.test(value);
var flag2=Boolean(value>=1&&value<=1000);
return flag1&&flag2;
// return /^((0\.[0-9]{1,2})|(1(\.(0+))?))$/.test(value);
},
// message: "请输入0.1~1.0之间保留两位小数的数字."
message: "请输入1~1000之间的数字."
}
});
$.extend($.fn.validatebox.defaults.rules, {
numerSpecil: {
validator: function (value, param) {
var flag3=(value=="-1");
var flag4=/^(0|[1-9]\d*)$/.test(value);
return flag3||flag4;
},
message: "请输入-1或者其他数字."
}
});
$.extend($.fn.validatebox.defaults.rules, {
portnumer: {
validator: function (value, param) {
var flag1=/^[\d]+$/.test(value);
var flag2=(value>=1)&&(value<=65535);
return flag1&&flag2;
},
message: "请输入1到65535之间的数字."
}
});
function transformDate(date) {
if(date){
var jstr = '{"d":"' + date + '"}'
var reg = new RegExp('"/Date\\((-?[0-9]+)\\)/"', 'g');
d = jstr.replace(reg, "new Date($1)");
obj = eval('(' + d + ')');
return DateFormat.format(obj.d, 'yyyy-MM-dd hh:mm:ss'); ;
}
}
DateFormat = (function () {
var SIGN_REGEXP = /([yMdhsm])(\1*)/g;
var DEFAULT_PATTERN = 'yyyy-MM-dd';
function padding(s, len) {
var len = len - (s + '').length;
for (var i = 0; i < len; i++) { s = '0' + s; }
return s;
};
return ({
format: function (date, pattern) {
pattern = pattern || DEFAULT_PATTERN;
return pattern.replace(SIGN_REGEXP, function ($0) {
switch ($0.charAt(0)) {
case 'y': return padding(date.getFullYear(), $0.length);
case 'M': return padding(date.getMonth() + 1, $0.length);
case 'd': return padding(date.getDate(), $0.length);
case 'w': return date.getDay() + 1;
case 'h': return padding(date.getHours(), $0.length);
case 'm': return padding(date.getMinutes(), $0.length);
case 's': return padding(date.getSeconds(), $0.length);
}
});
},
parse: function (dateString, pattern) {
var matchs1 = pattern.match(SIGN_REGEXP);
var matchs2 = dateString.match(/(\d)+/g);
if (matchs1.length == matchs2.length) {
var _date = new Date(1970, 0, 1);
for (var i = 0; i < matchs1.length; i++) {
var _int = parseInt(matchs2[i]);
var sign = matchs1[i];
switch (sign.charAt(0)) {
case 'y': _date.setFullYear(_int); break;
case 'M': _date.setMonth(_int - 1); break;
case 'd': _date.setDate(_int); break;
case 'h': _date.setHours(_int); break;
case 'm': _date.setMinutes(_int); break;
case 's': _date.setSeconds(_int); break;
}
}
return _date;
}
return null;
}
});
})();
- 验证 正则
- 正则验证
- 正则验证
- 正则验证
- 正则验证
- 正则验证
- 正则验证
- 正则验证
- 正则验证
- 正则验证
- 正则验证
- 正则验证
- 正则表达式验证验证
- 正则表达式,验证框验证
- JS邮箱验证-正则验证
- JS邮箱验证-正则验证
- 【正则】验证邮箱正则表达式
- AJAX 验证 用户名验证 手机号码正则验证
- shell 命令小计——工作笔记
- 利用IWebBrowser2接口的Navigate2方法实现Http POST传输
- adb log 分析
- java.lang.Thread.State类详解
- Android 快捷方式
- 正则验证
- scala
- Extjs 自定义函数,外部调用
- 网络爬虫中高效率的URL索引 更新支持千万条数据
- 解决 Jquery 弹出层 获取不到值(iframe)相关
- sicily--1040. Polly Nomials
- ANDROID 常见死机LOG分析
- 新手必读:session和cookie的区别
- php file_exists无效解决办法