javascript常用正则表达式汇总
javascript常用正则表达式汇总
/**
*检验各种规则
*@paramstr检验的内容
*@paramcType预设的检验规则字符串[
*empty,检验是否为空
*telphone,座机手机号码
*allphone,所有手机号码
*ydphone,移动手机号码
*ltphone,联通手机号码
*dxphone,电信手机号码
*email,邮箱
*url,网址
*cn,汉字
*image,图片格式
*emscode,邮政编码
*isEmpty,检查是否为空
*isint,整数
*isfloat,判断是否为正小数
*isnumber,判断为实数
*words,判断是否为英文字母
*wordsAndNum,判断是否为字母+数字
*wordsAndNumAndDownline,判断是否由数字、26个英文字母或者下划线组成的字符串
*qq,QQ检验
*personCard18,身份证18位
*personCard15,身份证15位
*]
*@paramregex自定义表达式传入格式例如:"^\-?[1-9]+\d*$"
*
*@descriptioncType与regex只能有一个为空
*如checkObjectByRegex("测试中文","cn");//判断中文
*如checkObjectByRegex("测试中文",null,"^[\u4e00-\u9fa5]+$");//自定义表达式正则
*@return{boolean}
*/
functioncheckObjectByRegex(str,cType,regex){
/**
*定义验证各种格式类型的正则表达式对象
*/
varRegexs={
telphone:(/^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/),//座机手机号码
allphone:(/^((13[0-9])|(14[57])|(15[0-9])|(17[678])|(18[0-9]))[0-9]{8}$/),//所有手机号码
ydphone:(/^((13[4-9])|(15[012789])|147|178|(18[23478]))[0-9]{8}$/),//移动手机号码
ltphone:(/^((13[0-2])|(145)|(15[56])|(176)|(18[56]))[0-9]{8}$/),//联通手机号码
dxphone:(/^((133)|(153)|(177)|(180)|(181)|(189))[0-9]{8}$/),//电信手机号码
email:(/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/),//邮箱
url:(/(?:https|http|ftp|rtsp|mms):\/\/.+\/[\w]+\.[\w]+/),//网址
cn:(/^[\u4e00-\u9fa5]+$/i),//汉字
image:(/\.jpg$|\.jpeg$|\.png$/i),//图片格式
emscode:(/^[1-9]\d{5}$/),//邮政编码
isint:(/^(\-)?[1-9]+\d*$/),//整数
isfloat:(/^[0-9]+\.?[0-9]*$/),//判断是否为正小数
isnumber:(/^[-\+]?\d+(\.\d+)?$/),//判断为实数
words:(/^[A-Za-z]+$/),//判断是否为英文字母
wordsAndNum:(/^[A-Za-z0-9]+$/),//判断是否为字母+数字
wordsAndNumAndDownline:(/^\w+$/),//判断是否由数字、26个英文字母或者下划线组成的字符串
qq:(/^[1-9]\d{4,11}$/),//QQ
personCard18:(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d|X)$/),//身份证18位
personCard15:(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/)//身份证15位
};
varnReg;
if(str==null||typeof(str)=="undefined"){
str="";
}
if(cType!=null&&typeof(cType)!="undefined"){
if(cType=="isEmpty"){
str=$.trim(str);
if(str!=null&&typeof(str)!="undefined"&&str!=""){
returnfalse;
}elsereturntrue;
}
nReg=Regexs[cType];
if(str==null||str=="")returnfalse;//输入为空,认为是验证通过
//针对18位身份证单独处理
if(cType=='personCard18'){
varary=str.match(Regexs[cType]);
if(!(parseInt(ary[3])>=1900))returnfalse;
varD=newDate(ary[3]+"/"+ary[4]+"/"+ary[5]);
varisTrue=D.getFullYear()==ary[3]&&(D.getMonth()+1)==ary[4]&&D.getDate()==ary[5];
returnisTrue;
}
//针对15位身份证单独处理
if(cType=='personCard15'){
varary=str.match(Regexs[cType]);
varD=newDate("19"+ary[3]+"/"+ary[4]+"/"+ary[5]);
varisTrue=D.getYear()==ary[3]&&(D.getMonth()+1)==ary[4]&&D.getDate()==ary[5];
returnisTrue;
}
}else{
//自定义正则表达式处理
if(regex!=null&&typeof(regex)!="undefined"){
nReg=newRegExp(regex);
}else{
returnfalse;
}
}
returnnReg.test(str);
}
以上所述就是本文的全部内容了,希望大家能够喜欢。