整理了下JS常用正则表达式

常用正则整理:

1、验证以字母开头,长度在6~18之间,只能包含字符、数字和下划线的密码:"^[a-zA-Z]\w{5,17}$"

2、验证电话号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正确格式为:"xxxx-xxxxxxx"、"xxxx-xxxxxxxx"、"xxx-xxxxxxx"、"xxx-xxxxxxxx"、"xxxxxxx"和"xxxxxxxx"。
3、验证国内电话号码:"^(\d{3}-\d{8})|\d{4}-\d{7}$",形式如 xxxx-xxxxxxx 或 xxx-xxxxxxx
4、验证手机号:"^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$"
5、验证身份证号(15位或18位):"^\d{15}(\d{2}[A-Za-z0-9])?$"
6、验证Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"
7-1、只能由26个英文字母组成:"^[A-Za-z]+$"
7-2、只能由26个大写英文字母组成:"^[A-Z]+$"
7-3、只能由26个小写英文字母组成:"^[a-z]+$"
7-4、只能由数字和26个英文字母组成:"^[A-Za-z0-9]+$"
7-5、只能由数字、26个英文字母或者下划线组成的字符串:"^\w+$"
8、整数或者小数:"^[0-9]+([.][0-9]+){0,1}$"
9-1、只能数字:"^[0-9]*$"
9-2、n位的数字:"^\d{n}$"
9-3、至少n位的数字:"^\d{n,}$"
9-4、m~n位的数字:"^\d{m,n}$"
9-5、零和非零开头的数字:"^(0|[1-9][0-9]*)$"
9-6、有两位小数的正实数:"^[0-9]+(\.[0-9]{2})?$"
9-7、有1~3位小数的正实数:"^[0-9]+(\.[0-9]{1,3})?$"
9-8、非零的正整数:"^\+?[1-9][0-9]*$"
9-9、非零的负整数:"^\-[1-9][0-9]*$"
10、长度为8的字符:"^.{8}$"
11、验证是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"
12、只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"
13、双字节字符(包括汉字在内):"^\x00-\xff*$";
14、验证http://类型的URL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"
15、验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"
16、验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"、"10"~"29"和"30"~"31"
17、获取日期:"^\\d{4}[年|\-|\.]\d{\1-\12}[月|\-|\.]\d{\1-\31}日?$"
18、匹配空行:"\n[\s| ]*\r"
19、匹配html标签:"<(.*)>(.*)<\/(.*)>|<(.*)\/>"
20、匹配首尾空白字符:"^\s*|\s*$"
21、匹配腾讯QQ号:"^[1-9][0-9]{4,}$"
22、匹配中国邮政编码:"^[1-9]\\d{5}(?!\d)$"
23、匹配ip地址:"^([1-9]{1,3}\.){3}[1-9]$"
24、匹配MAC地址:"^([A-Fa-f0-9]{2}\:){5}[A-Fa-f0-9]$"
25、验证年龄:"^(1[0-2]\d|\d{1,2})$"
26、验证货币值:"^\d+\.\d{2}$"

扩展:
1、利用正则表达式限制文本框输入内容:
只能输入中文:οnkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
只能输入全角字符: οnkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
只能输入数字:οnkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

 

只能输入数字和英文:οnkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

 

 

2、整理的一些函数
1)判断日期类型是否为YYYY-MM-DD类型    
function IsDate(str){     
    if(str.length!=0){    
        var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;     
        var r = str.match(reg);     
        if(r==null){
           return true;
       }else{
          return false;
     }
    }else{
         return false;
    }
}     
   
2)判断日期类型是否为YYYY-MM-DD hh:mm:ss类型    
function IsDateTime(str){       
    if(str.length!=0){    
        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 true;
}else{
return false;
}
    }else{
return false;
}   
}     
   
3)判断日期类型是否为hh:mm:ss类型    
function IsTime(str){       
    if(str.length!=0){    
reg=/^((20|21|22|23|[0-1]\d)\:[0-5][0-9])(\:[0-5][0-9])?$/     
        if(!reg.test(str){
return false;
}else{
return true;
}
    }else{
return false;

}     
   
4)判断字符是否为英文字母    
function IsLetter(str){       
if(str.length!=0){    
        reg=/^[a-zA-Z]+$/;     
        if(!reg.test(str)){    
           return false;
}else{
return true;
}
    }else{
return false;
}  
}     
   
5)判断字符是否为整数    
function IsInteger(str){         
if(str.length!=0){    
reg=/^[-+]?\d*$/;     
        if(!reg.test(str)){    
            return false;
}else{
return true;
}
    }else{
return false;
}    
}     
   
6)判断字符是否为数字或大小写字母    
function IsString(str){     
var str = document.getElementById('str').value.trim();    
if(str.length!=0){    
reg=/^[a-zA-Z0-9_]+$/;     
        if(!reg.test(str)){    
            return false;
}else{
return true;
}
    }else{
return false;
}     
}     
   
7)判断字符是否为中文    
function IsChinese(str){     
if(str.length!=0){    
reg=/^[\u0391-\uFFE5]+$/;    
        if(!reg.test(str)){    
           return false;
}else{
return true;
}
    }else{
return false;
}       
}     
   
8)判断EMAIL格式是否正确    
function IsEmail(str){      
if(str.length!=0){    
        reg=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;    
        if(!reg.test(str)){    
           return false;
}else{
return true;
}
    }else{
return false;
}     
}     
8-2)判断EMAIL格式是否正确  
function is_mail(str){
var filter=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if(!filter.test(str)){
return false;
}else{
return true;
}
}
   
9)判断邮编(只能为六位)
function IsZIP(str){       
if(str.length!=0){    
        reg=/^\d{6}$/;    
        if(!reg.test(str)){    
          return false;
}else{
return true;
}
    }else{
return false;
}       
}     
   
10)判断联系方式
function is_ph(str){
if(str.length == 11){t=1;}else{t=2;}
if(t == 1){//手机
var partten=/^1[3,5,8]\d{9}$/;
if(!partten.test(str)){
return false;
}else{
return true;
}
}
if(t == 2){//固话
var partten=/^0(([1,2]\d)|([3-9]\d{2}))-\d{7,8}$/;
if(!partten.test(str)){
return false;
}else{
return true;
}
}
}

11)判断身份证
function is_id(str,t){
if(str.length != 15 && str.length != 18){
return false;
}
if(str.length == 15){
if(isNaN(str)){return false;}
}else{
var str1=str.substring(0,17);
var str2=str.substring(17,18);
var alpha="X0123456789";
if(isNaN(str) || alpha.indexOf(str2) == -1){
return false;
}
}
return true;
}

12)判断URL
function checkUrl(url){
if(url =="" || url == null){
return false;
}
var strRegex = "^((https|http|ftp|rtsp|mms)?://)"
+ "(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP形式的URL- 199.168.1.1
+ "|" // 允许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_!~*'().;?:@&=+$,%#-]+)+/?)$";
var re=new RegExp(strRegex);
if (re.test(url)){
return true;
}else{
return false;
}
}

 
posted @ 2018-02-10 09:20  wx_9uxYUbHk2m  阅读(1)  评论(0编辑  收藏  举报  来源