js 正则表达式验证

function(validation){

//只能是半角字符
var card = /^[\x00-\xff]*$/;
validation.checkCard=function(str){
return card.exec(str);
}
//中文2-10 位 或者 英文 4-20 位
var name =/[a-zA-Z]{4,20}$|[\u4E00-\u9FA5\uf900-\ufa2d]{2,10}$/;
validation.checkName=function(str){
return name.exec(str);
}
//中文 或者 英文
var names =/[a-zA-Z]{1,20}$|[\u4E00-\u9FA5\uf900-\ufa2d]{1,10}$/;
validation.checkNames=function(str){
return names.exec(str);
}
var name2=/[a-zA-Z0-9.\u4e00-\u9fa5]$/
validation.checkName2=function(str){
return name2.exec(str);
}
//英文,数字
var spellNum = /[a-zA-Z0-9]{1,35}$|[0-9]{1-40}$|[a-zA-Z]{1,35}$/;
validation.checkSpellNum=function(str){
return spellNum.exec(str);
}
var spellNum2 = /[a-zA-Z0-9]*$/;
validation.checkSpellNum2=function(str){
return spellNum2.exec(str);
}
//验证 编码 数字,字母,下划线,和 .
// var patrn=/^([a-zA-Z0-9-]){1,20}$/;
var patrn=/^([a-zA-Z0-9-]){1,100}$/;
validation.checkCode=function(str){
return patrn.exec(str);
}
//验证 编码 数字,字母,下划线,和 .
var dirpatrn=/^([a-zA-Z0-9-.+_]){1,100}$/;
validation.checkDirCode=function(str){
return dirpatrn.exec(str);
}
//邮箱正则
var REG_EMAIL=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
//验证邮箱地址
validation.checkEmail=function(str){
return REG_EMAIL.exec(str);
}
//验证国内电话(支持分机号)
var REG_TEL=/^(0[0-9]{2,3}\-)?([1-9][0-9]{4,7})+(\-[0-9]{1,4})?$/;
validation.checkTel=function(str){
return REG_TEL.exec(str);
}
//验证国内手机号
var REG_PHONE=/^(0|86|17951)?(13[0-9]|15[012356789]|18[0236789]|14[57])[0-9]{8}$/;
validation.checkPhone=function(str){
return REG_PHONE.exec(str);
}
//验证整数
var REG_INTEGER=/^-?(([1-9]\d*)|0)$/;
validation.checkInteger=function(str){
return REG_INTEGER.exec(str);
}
//验证邮编
var POSTCODE=/[0-9]{6}$/;
validation.checkPOSTCODE=function(str){
return POSTCODE.exec(str);
}
//验证整数
var REG_INTEGER=/^-?(([1-9]\d*)|0)$/;
validation.checkInteger=function(str){
return REG_INTEGER.exec(str);
}
//验证非负数(浮点数默认精确到4位)
validation.checkNonnegative=function(str,digit,decimal){
if(!decimal){
decimal=4;
}
var REG_NONNEGATIVE =new RegExp("^(([1-9]\\d{0,"+digit+"})|0)(?:\\.\\d{0,"+decimal+"}$|$)?$");
return REG_NONNEGATIVE.exec(str);
}
//验证常用用户名(以字母开头,允许5-16字节,允许字母数字下划线)
var REG_USERNAME=/^[a-zA-Z][a-zA-Z0-9_]{4,15}$/;
validation.checkUserName=function(str){
return REG_USERNAME.exec(str);
}
//
//验证工号 只能是 数字和 英文
var JOB_ID=/[a-zA-Z0-9]{4,15}$/
validation.checkJOBID=function(str){
return JOB_ID.exec(str);
}
//验证常用密码(允许6-18字节,允许字母数字下划线及特殊字符.@!$%*#)
var REG_PWD=/^([a-zA-Z0-9]|\.|@|\!|\$|%|\*|#){5,17}$/;
validation.checkPwd=function(str){
return REG_PWD.exec(str);
}
//验证身份证
// var REG_IDCARD=/^\d{18}$|^\d{17,18}[A-Za-z]{1}$|^\d{15}$/;
var REG_IDCARD=/^[1-9]\d{5}[1-9]\d{3}((0[1-9])|(1[0-2]))(([0][1-9]|[1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;
validation.checkIDCard=function(str){
return REG_IDCARD.exec(str);
}
//身份证2
var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",
21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",
34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",
43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川"
,52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",
64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}
function isCardID(sId){
var iSum=0 ;
var info="" ;
if(!/^\d{17}(\d|x)$/i.test(sId)) return "你输入的身份证长度或格式错误";
sId=sId.replace(/x$/i,"a");
if(aCity[parseInt(sId.substr(0,2))]==null) return "你的身份证地区非法";
sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
var d=new Date(sBirthday.replace(/-/g,"/")) ;
if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "身份证上的出生日期非法";
for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11) ;
if(iSum%11!=1) return "你输入的身份证号非法";
return true;//aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")
}
//验证QQ号码
var REG_QQ=/^[1-9][0-9]{4,}$/;
validation.checkQQ=function(str){
return REG_QQ.exec(str);
}
//验证真实姓名
var RealName =/[a-zA-Z]{2,20}$|[\u4E00-\u9FA5\uf900-\ufa2d]{2,18}$/;
validation.checkName=function(str){
return RealName.exec(str);
}
//验证邮政编码
var REG_ZIPCODE=/^[1-9]\d{5}(?!\d)$/;
validation.checkZipCode=function(str){
return REG_ZIPCODE.exec(str);
}
//验证是否包含HTML标记
var REG_HTML=/<(\S*?)[^>]*>.*?<\/\1>|<.*? \/>/;
validation.checkHTML=function(str){
return REG_HTML.exec(str);
}
//验证网址URL
var REG_URL=/^[a-zA-z]+:\/\/[^\s]*$/;
var strRegexs = "^((https|http|ftp|rtsp|mms)?://)"
+ "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" //ftp的user@
+ "(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184
+ "|" // 允许IP和DOMAIN(域名)
+ "([0-9a-z_!~*'()-]+\.)*" // 域名- www.
+ "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名
+ "[a-z]{2,6})" // first level domain- .com or .museum
+ "(:[0-9]{1,4})?" // 端口- :80
+ "((/?)|" // a slash isn't required if there is no file name
+ "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";
validation.checkURL=function(str){
return REG_URL.exec(str);
}

//验证IP
var REG_IP=/^\d+\.\d+\.\d+\.\d+$/;
validation.checkIP=function(str){
return REG_IP.exec(str);
}
//验证是否包含中文或中文字符
var REG_CHCHAR=/[^\x00-\xff]/;
validation.checkCHChar=function(str){
return REG_CHCHAR.exec(str);
}
//验证VISA卡号
var REG_VISA=/^(4\d{12}(?:\d{3})?)$/;
validation.checkVISA=function(str){
return REG_VISA.exec(str);
}
//验证是否有效日期格式,如2000(./- 年)1(01)(./- 月)1(01)(日)
var REG_DATE=/^(\d{4})(\.|\/|\-|\s|\u5E74)?(\d{1,2})(\.|\/|\-|\s|\u6708)?(\d{1,2})(\s|\u65E5)?$/;
validation.checkDate=function(str){
str=str.replace(REG_DATE,function(){
return RegExp.$1+"-"+(RegExp.$3.length==1?"0"+RegExp.$3:RegExp.$3)+"-"+(RegExp.$5.length==1?"0"+RegExp.$5:RegExp.$5);
});
return String(new Date(str)).toLowerCase()=="invalid date"?false:true;
}
//验证是否有效时间格式,如23:59:59
var REG_TIME=/^(([0-1][0-9])|(2[0-3]))(:|:|\s)([0-5][0-9])(:|:|\s)([0-5][0-9])$/;
validation.checkTime=function(str){
str=str.replace(/^(\d+).*?(\d+).*?(\d+)$/,function(){
return (RegExp.$1.length==1?"0"+RegExp.$1:RegExp.$1)+":"+(RegExp.$2.length==1?"0"+RegExp.$2:RegExp.$2)+":"+(RegExp.$3.length==1?"0"+RegExp.$3:RegExp.$3);
});
return REG_TIME.test(str);
}

 

 

 常用的java函数(十二)正则表达式用于字符串处理

正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。    
  
匹配中文字符的正则表达式: [\u4e00-\u9fa5]    
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了    
  
匹配双字节字符(包括汉字在内):[^\x00-\xff]    
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)    
  
匹配空白行的正则表达式:\n\s*\r    
评注:可以用来删除空白行    
  
匹配HTML标记的正则表达式: <(\S*?)[^>]*>.*? </\1> | <.*? />    
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力    
  
匹配首尾空白字符的正则表达式:^\s* |\s*$    
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式    
  
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*    
评注:表单验证时很实用    
  
匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*    
评注:网上流传的版本功能很有限,上面这个基本可以满足需求    
  
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$    
评注:表单验证时很实用    
  
匹配国内电话号码:\d{3}-\d{8} |\d{4}-\d{7}    
评注:匹配形式如 0511-4405222 或 021-87888822    
  
匹配腾讯QQ号:[1-9][0-9]{4,}    
评注:腾讯QQ号从10000开始    
  
匹配中国邮政编码:[1-9]\d{5}(?!\d)    
评注:中国邮政编码为6位数字    
  
匹配ip地址:\d+\.\d+\.\d+\.\d+    
评注:提取ip地址时有用    
  
匹配特定数字:    
^[1-9]\d*$    //匹配正整数    
^-[1-9]\d*$   //匹配负整数    
^-?[1-9]\d*$   //匹配整数    
^[1-9]\d* |0$  //匹配非负整数(正整数 + 0)    
^-[1-9]\d* |0$   //匹配非正整数(负整数 + 0)    
^[1-9]\d*\.\d* |0\.\d*[1-9]\d*$   //匹配正浮点数    
^-([1-9]\d*\.\d* |0\.\d*[1-9]\d*)$  //匹配负浮点数    
^-?([1-9]\d*\.\d* |0\.\d*[1-9]\d* |0?\.0+ |0)$  //匹配浮点数    
^[1-9]\d*\.\d* |0\.\d*[1-9]\d* |0?\.0+ |0$   //匹配非负浮点数(正浮点数 + 0)    
^(-([1-9]\d*\.\d* |0\.\d*[1-9]\d*)) |0?\.0+ |0$  //匹配非正浮点数(负浮点数 + 0)    
评注:处理大量数据时有用,具体应用时注意修正    
  
匹配特定字符串:    
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串    
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串    
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串    
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串    
^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串    
评注:最基本也是最常用的一些表达式 

}

posted on 2016-10-19 11:06  爱海滔滔  阅读(392)  评论(0编辑  收藏  举报