一个同事写的,分享给大家:
////注:用此验证框架,如要确保页面输入框的边框架样式好看。最好写个通用输入框样式如:input[type="text"] {border:solid 2px #f50;}
Validator = {
Require : /\s*\S+\s*/,
RemarkLength : /^\s*\S{0,500}\s*$/,
RegExpValidate:"this.RegExpValidate(value,accessKey)",
TextLength : "this.CheckTextLength(value,accessKey)",
Email : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
EmailOrNull : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
Birthday : /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/,
BirthdayOrNull : /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/,
Phone : /(^[0-9]{3,4}\-[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/,
PhoneOrNull : /(^[0-9]{3,4}\-[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/,
LocalPhone : /(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/,
LocalPhoneOrNull : /(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/,
Mobile : /^1(3[0-9]|8[5-9]|5[01256789])\d{8}$/,
MobileOrNull : /^1(3[0-9]|8[5-9]|5[01256789])\d{8}$/,
Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,
UrlOrNull : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,
IdCard : "this.IsIdCard(value)",
IdCardOrNull : "this.IsIdCard(value)",
Currency : /^\d+(\.\d+)?$/,
Number : /^\d+$/,
NumberOrNull : /^\d*$/,
Zip : /^[1-9]\d{5}$/,
ZipOrNull : /^[1-9]\d{5}$/,
QQ : /^[1-9]\d{4,15}$/,
QQOrNull : /^[1-9]\d{4,15}$/,
Integer : /^[-\+]?\d+$/,
IntegerAndNotMinus : /^[+]?\d+$/, //非负整数
IntegerOrNullAndNotMinus : /^[+]?\d*$/, //可以是空或者非负整数
IntegerOrNull : /^[-\+]?\d*$/, //可以是空或者必须是整数
Double : /^[-\+]?\d+(\.\d+)?$/,
DoubleAndNotMinus : /^[+]?\d+(\.\d+)?$/, //非负整数、小数
DoubleOrNull : /^[-\+]?\d*(\.\d+)*$/, // 可以是空或者必须是整数、小数
English : /^[A-Za-z]+$/,
EnglishOrNull : /^[A-Za-z]*$/,
BigWord : /^[A-Z]+$/,
BigWordOrNull : /^[A-Z]*$/,
Chinese : /^[\u0391-\uFFE5]+$/,
ChineseOrNull : /^[\u0391-\uFFE5]*$/,
UnChinese : /^\w+$/,// 必填,由数字、26个英文字母或者下划线组成的字符串
UnChineseOrNull : /^\w*$/,// 必填,由数字、26个英文字母或者下划线组成的字符串
JpgImage : /(.jpg)$/, //用于验证图片扩展名的正则表达式(.jpg|.png|.gif|.ps|.jpeg)
xlsFile : /(.xls)$/,
Username : /^[a-z]\w{3,}$/i,
UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/,
Year : /^[0-9]\d{3}$/,
Month : "this.IsMonth(value)",
IsSafe : function(str) {
return !this.UnSafe.test(str);
},
SafeString : "this.IsSafe(value)",
Filter : "this.DoFilter(value, getAttribute('accept'))",
Limit : "this.limit(value.length,getAttribute('min'), getAttribute('max'))",
LimitB : "this.limit(this.LenB(value), getAttribute('min'), getAttribute('max'))",
Date : "this.IsDate(value, getAttribute('min'), getAttribute('format'))",
Repeat : "value == document.getElementsByName(getAttribute('to'))[0].value",
Range : "getAttribute('accesskey').split(',')[0] <= (value|0) && (value|0) <= getAttribute('accesskey').split(',')[1]",
Compare : "this.compare(value,getAttribute('operator'),getAttribute('to'))",
Custom : "this.Exec(value, getAttribute('regexp'))",
Group : "this.MustChecked(getAttribute('name'), getAttribute('min'), getAttribute('max'))",
ErrorItem : [document.forms[0]],
CellValidator : "cellCheck(value,getAttribute('index'))",
ErrorMessage : [""],
//错误消息元素后缀
ErrorMsg : "ErrorMsg",
//系统默认边框颜色
DefaultColor : "#00A8E6",
//输入错误边框颜色
ErrorColor : "#FF3300",
//输入正确边框颜色
RightColor : "#00CC00",
/** 消息占位符 **/
replaceOne : "",
replaceTwo : "",
replaceThree : "",
Validate : function(theForm) {
var obj = theForm |