当前位置: 移动技术网 > IT编程>开发语言>正则 > js 验证 常用正则表达式集锦

js 验证 常用正则表达式集锦

2017年12月12日  | 移动技术网IT编程  | 我要评论
复制代码 代码如下:

<script>
/*************************************************
*************************************************/
validator = {
require : /.+/,
email : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
phone : /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/,
mobile : /^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/,
url : /^http:\/\/[a-za-z0-9]+\.[a-za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,
idcard : /^\d{15}(\d{2}[a-za-z0-9])?$/,
currency : /^\d+(\.\d+)?$/,
number : /^\d+$/,
zip : /^[1-9]\d{5}$/,
qq : /^[1-9]\d{4,8}$/,
integer : /^[-\+]?\d+$/,
double : /^[-\+]?\d+(\.\d+)?$/,
english : /^[a-za-z]+$/,
chinese : /^[\u0391-\uffe5]+$/,
username : /^[a-z]\w{3,}$/i,
unsafe : /^(([a-z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/,
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('min') < (value|0) && (value|0) < getattribute('max')",
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]],
errormessage : ["以下原因导致提交失败:\t\t\t\t"],
validate : function(theform, mode){
var obj = theform || event.srcelement;
var count = obj.elements.length;
this.errormessage.length = 1;
this.erroritem.length = 1;
this.erroritem[0] = obj;
for(var i=0;i<count;i++){
with(obj.elements[i]){
var _datatype = getattribute("datatype");
if(typeof(_datatype) == "object" || typeof(this[_datatype]) == "undefined") continue;
this.clearstate(obj.elements[i]);
if(getattribute("require") == "false" && value == "") continue;
switch(_datatype){
case "date" :
case "repeat" :
case "range" :
case "compare" :
case "custom" :
case "group" :
case "limit" :
case "limitb" :
case "safestring" :
case "filter" :
if(!eval(this[_datatype])) {
this.adderror(i, getattribute("msg"));
}
break;
default :
if(!this[_datatype].test(value)){
this.adderror(i, getattribute("msg"));
}
break;
}
}
}
if(this.errormessage.length > 1){
mode = mode || 1;
var errcount = this.erroritem.length;
switch(mode){
case 2 :
for(var i=1;i<errcount;i++)
this.erroritem[i].style.color = "red";
case 1 :
alert(this.errormessage.join("\n"));
this.erroritem[1].focus();
break;
case 3 :
for(var i=1;i<errcount;i++){
try{
var span = document.createelement("span");
span.id = "__errormessagepanel";
span.style.color = "red";
this.erroritem[i].parentnode.appendchild(span);
span.innerhtml = this.errormessage[i].replace(/\d+:/,"*");
}
catch(e){alert(e.description);}
}
this.erroritem[1].focus();
break;
default :
alert(this.errormessage.join("\n"));
break;
}
return false;
}
return true;
},
limit : function(len,min, max){
min = min || 0;
max = max || number.max_value;
return min <= len && len <= max;
},
lenb : function(str){
return str.replace(/[^\x00-\xff]/g,"**").length;
},
clearstate : function(elem){
with(elem){
if(style.color == "red")
style.color = "";
var lastnode = parentnode.childnodes[parentnode.childnodes.length-1];
if(lastnode.id == "__errormessagepanel")
parentnode.removechild(lastnode);
}
},
adderror : function(index, str){
this.erroritem[this.erroritem.length] = this.erroritem[0].elements[index];
this.errormessage[this.errormessage.length] = this.errormessage.length + ":" + str;
},
exec : function(op, reg){
return new regexp(reg,"g").test(op);
},
compare : function(op1,operator,op2){
switch (operator) {
case "notequal":
return (op1 != op2);
case "greaterthan":
return (op1 > op2);
case "greaterthanequal":
return (op1 >= op2);
case "lessthan":
return (op1 < op2);
case "lessthanequal":
return (op1 <= op2);
default:
return (op1 == op2);
}
},
mustchecked : function(name, min, max){
var groups = document.getelementsbyname(name);
var haschecked = 0;
min = min || 1;
max = max || groups.length;
for(var i=groups.length-1;i>=0;i--)
if(groups[i].checked) haschecked++;
return min <= haschecked && haschecked <= max;
},
dofilter : function(input, filter){
return new regexp("^.+\.(?=ext)(ext)$".replace(/ext/g, filter.split(/\s*,\s*/).join("|")), "gi").test(input);
},
isdate : function(op, formatstring){
formatstring = formatstring || "ymd";
var m, year, month, day;
switch(formatstring){
case "ymd" :
m = op.match(new regexp("^((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})$"));
if(m == null ) return false;
day = m[6];
month = m[5]*1;
year = (m[2].length == 4) ? m[2] : getfullyear(parseint(m[3], 10));
break;
case "dmy" :
m = op.match(new regexp("^(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))$"));
if(m == null ) return false;
day = m[1];
month = m[3]*1;
year = (m[5].length == 4) ? m[5] : getfullyear(parseint(m[6], 10));
break;
default :
break;
}
if(!parseint(month)) return false;
month = month==0 ?12:month;
var date = new date(year, month-1, day);
return (typeof(date) == "object" && year == date.getfullyear() && month == (date.getmonth()+1) && day == date.getdate());
function getfullyear(y){return ((y<30 ? "20" : "19") + y)|0;}
}
}
</script>

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网