java中的正则表达式实例

来源:互联网 发布:路由器选择算法 优点 编辑:程序博客网 时间:2024/05/21 10:33
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
// 正则做参考,拷贝使用,注意正则前后加转义符
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|14)[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})$",  //身份证
    english:"^[A-Za-z]+$"
}
 
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?"男":"女")
}
 
//自定义验证
$.extend($.fn.validatebox.defaults.rules, {
    // 混合验证  五个参数,第一个是正则表达式,第二个是错误提示信息,第三个是调用的url,第四个是传递给服务器的参数名称,第五个是错误提示信息
        Composite_validation: {
       validator: function(value, param) { 
           var m_reg = new RegExp(param[0]); //传递过来的正则字符串中的"\"必须是"\\" 
           if (!m_reg.test(value)) { 
               $.fn.validatebox.defaults.rules.Composite_validation.message = param[1]; 
               return false; 
           
           else { 
               var postdata = {}; 
               postdata[param[3]] = value; 
               var result = $.ajax({ 
                   url: param[2], 
                   data: postdata, 
                   async: false, 
                   type:"post" 
               }).responseText;
               if (result == "false") {
                   $.fn.validatebox.defaults.rules.Composite_validation.message = param[4]; 
                   return false; 
               
               else { 
                   return true; 
               
           
       }, 
       message:'' 
   },
   equalTo: {
       validator: function(value, param) {
           // 做某些检查
            return value == $('#'+param[0]).val();
       }, 
       message:'两次输入的密码不一致'
    },
    mobile: {
        validator: function (value, param) {
            return /^(13|15|18|14)[0-9]{9}$/.test(value);
        },
        message:'手机号码不正确'
    },
    tel: {
        validator: function (value, param) {
            $.fn.validatebox.defaults.rules.tel.message = param[0]; 
            return /^\d{3,4}-\d{7,9}$/.test(value);
        },
        message:''
    },
    number: {
        validator: function (value, param) {
            return /^\d+$/.test(value);
        },
        message:'请输入数字'
    },
    idcard: {
        validator: function (value, param) {
            var result = isCardID(value);
            if(result == true) {
                return true;
            } else {
                $.fn.validatebox.defaults.rules.idcard.message = result; 
                return false; 
            }
        },
        message:''
    },
    chinese: {
       validator: function(value, param) {
            return /^[\u4E00-\u9FA5\uF900-\uFA2D]+$/.test(value);
       }, 
       message:'只能输入中文'
    },
    english : {
        validator : function(value, param) {
            return /^\w+$/.test(value); 
        },
        message : '只能输入英文'
    },
    unChinese : {
        validator : function(value, param) {
        //return /^[\w-.\/?%&=]*$/.test(value);
            if(/^[\u4E00-\u9FA5\uF900-\uFA2D]+$/.test(value)) {
                return false;
            }
            return true;
        },
        message : '能输入除中文以外的字符'
    }
});

0 0
原创粉丝点击