javaScript 中常用的正则表达式

来源:互联网 发布:全球社科类期刊 知乎 编辑:程序博客网 时间:2024/06/10 18:09

 

var regexEnum = 

{

intege:"^-?[1-9]//d*$",//整数

intege1:"^[1-9]//d*$",//正整数

intege2:"^-[1-9]//d*$",//负整数

num:"^([+-]?)//d*//.?//d+$",//数字

num1:"^[1-9]//d*|0$",//正数(正整数 + 0)

num2:"^-[1-9]//d*|0$",//负数(负整数 + 0)

decmal:"^([+-]?)//d*//.//d+$",//浮点数

decmal1:"^[1-9]//d*.//d*|0.//d*[1-9]//d*$",  //正浮点数

decmal2:"^-([1-9]//d*.//d*|0.//d*[1-9]//d*)$",  //负浮点数

decmal3:"^-?([1-9]//d*.//d*|0.//d*[1-9]//d*|0?.0+|0)$",  //浮点数

decmal4:"^[1-9]//d*.//d*|0.//d*[1-9]//d*|0?.0+|0$",   //非负浮点数(正浮点数 + 0)

decmal5:"^(-([1-9]//d*.//d*|0.//d*[1-9]//d*))|0?.0+|0$",  //非正浮点数(负浮点数 + 0)

 

email:"^//w+((-//w+)|(//.//w+))*//@[A-Za-z0-9]+((//.|-)[A-Za-z0-9]+)*//.[A-Za-z0-9]+$", //邮件

color:"^[a-fA-F0-9]{6}$",//颜色

url:"^http[s]?://////([//w-]+//.)+[//w-]+([//w-./?%&=]*)?$",//url

chinese:"^[//u4E00-//u9FA5//uF900-//uFA2D]+$",//仅中文

ascii:"^[//x00-//xFF]+$",//仅ACSII字符

zipcode:"^//d{6}$",//邮编

mobile:"^(13|15|18)[0-9]{9}$",//手机

ip4:"^(25[0-5]|2[0-4]//d|[0-1]//d{2}|[1-9]?//d)//.(25[0-5]|2[0-4]//d|[0-1]//d{2}|[1-9]?//d)//.(25[0-5]|2[0-4]//d|[0-1]//d{2}|[1-9]?//d)//.(25[0-5]|2[0-4]//d|[0-1]//d{2}|[1-9]?//d)$",//ip地址

notempty:"^//S+$",//非空

picture:"(.*)//.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$",//图片

rar:"(.*)//.(rar|zip|7zip|tgz)$",//压缩文件

date:"^//d{4}(//-|///|/.)//d{1,2}//1//d{1,2}$",//日期

qq:"^[1-9]*[1-9][0-9]*$",//QQ号码

tel:"^(([0//+]//d{2,3}-)?(0//d{2,3})-)?(//d{7,8})(-(//d{3,}))?$",//电话号码的函数(包括验证国内区号,国际区号,分机号)

username:"^//w+$",//用来用户注册。匹配由数字、26个英文字母或者下划线组成的字符串

letter:"^[A-Za-z]+$",//字母

letter_u:"^[A-Z]+$",//大写字母

letter_l:"^[a-z]+$",//小写字母

idcard:"^[1-9]([0-9]{14}|[0-9]{17})$"//身份证

}

 

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?"男":"女") 

 

 

 

 

//短时间,形如 (13:04:06)

function isTime(str)

{

var a = str.match(/^(/d{1,2})(:)?(/d{1,2})/2(/d{1,2})$/);

if (a == null) {return false}

if (a[1]>24 || a[3]>60 || a[4]>60)

{

return false;

}

return true;

}

 

//短日期,形如 (2003-12-05)

function isDate(str)

{

var r = str.match(/^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2})$/); 

if(r==null)return false; 

var d= new Date(r[1], r[3]-1, r[4]); 

return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);

}

 

//长时间,形如 (2003-12-05 13:04:06)

function isDateTime(str)

{

var reg = /^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2}) (/d{1,2}):(/d{1,2}):(/d{1,2})$/; 

var r = str.match(reg); 

if(r==null) return false; 

var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); 

return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);

}

String.prototype.isMobile = function() {   

return (/^(?:13/d|15/d|18/d)-?/d{5}(/d{3}|/*{3})/.test(this.Trim()));

}

function chkForm(telmob) 

{   

if (telmob.isMobile() || telmob.isTel()|| telmob.isTelNoZone())

{   

telmob = telmob.Trim();

return true;

}   

else 

return false;

}    

}  

 

 

使用方法:

 

 

 // 用户名验证示列

   

   function isNull2(){ 

       var userNameSpan = document.getElementById("userNameSpan"); 

            var userName = document.getElementById("userName").value;

            if(userName ==""){

                 userNameSpan.innerHTML="<font color='red'>plase enter in</font>"

              return false;

             }

<%--            if(isNaN(userName)){ // 只能输入数字--%>

<%--              userNameSpan.innerHTML="<font color='red'>plase enter nums</font>";--%>

<%--                 return false;--%>

<%--            }--%>

            var rule =/^//w+$/; // /^[0-9]*[1-9][0-9]*$/;正则表达式在/与/之间

            if(!rule.test(userName)){

              userNameSpan.innerHTML="<font color='red'>plase enter nums words _ $ </font>";

            return false;

            }

            if(userName.length>15 || userName.length<4){

             userNameSpan.innerHTML="<font color='red'>plase enter length gt 4 and lt 15 </font>";

                 return false;

            }

  }

  function isNull3(){

  userNameSpan.innerHTML="";

  }

 

 

 

 <tr>

                <td>用户名:</td>

                <td>

                  <input type="text" id="userName" name="userName" onblur="return isNull2()" onfocus="return isNull3()">

                  <span id="userNameSpan"></span>

                </td>

 

    </tr>

 

 

效果图: