正则表达式校验手机号和邮箱

在开发过程中,我们有个需求需要对传来的联系方式进行校验。如果是选择的联系方式是邮件,就需要对填写的邮箱地址进行格式校验;如果选择的是电话,需要对手机号进行格式校验。

开发经验不足的我,当时是想着写一个手机号和邮箱的工具类,到时候引入这个工具类就进行判断。但是咨询了一个开发时常两年半的鸡哥,鸡哥说这个简单啊,直接引入正则校验啊,又方便又快捷。

于是我就开始查询资料了,话不多说进行展示:

        /**
         * 正则表达式进行手机号和格式的校验
         */
        String regxPhone = "^[1][3|5|7|8][0-9]{9}$";
        String regxEmail = "^[0-9_A-Za-z]+(\\.[0-9_A-Za-z]+)*@[0-9_A-Za-z]+(\\.[0-9A_Za-z]+)+$";
        String phone = "12345678956";
        String email = "@qq.com";
        boolean flag = Pattern.compile(regxPhone).matcher(phone).find();    //false
        boolean result = email.matches(regxEmail);      //false
        //输出结果 flag:false result:false
        System.out.println("flag:"+flag+" result:"+result);

手机号校验:"^[1][3|5|7|8][0-9]{9}$";

举例:1开头,第二位是3/5/78/,后面为0-9的9位数字,符合这个匹配条件为true。

邮箱校验:"^[0-9_A-Za-z]+(\\.[0-9_A-Za-z]+)*@[0-9_A-Za-z]+(\\.[0-9A_Za-z]+)+$";

身份证号校验:"/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/"

IP地址校验:"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"

下面为对Ip地址校验的解释:

    /**
     * ^:匹配字符串开头
     * ( ):分组,用于同时匹配多个子表达式
     * (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?):匹配 0-255 之间的数字。可以有以下三种情况:
     * 以 25 开头,后面紧跟 0-5 之间的数字(即 250-255)。
     * 以 2 开头,后面紧跟 0-4 之间的数字,再后面紧跟任意一位数字(即 200-249)。
     * 以 0 ~ 1 之间的数字开头,后面可能紧跟一位数字或两位数字(即 0-199)
     * \.:匹配点号 '.',需要转义符号 '',否则无法匹配成功
     * {3}:表示前面的表达式,需要匹配 3 次,这里即表示上述匹配数字和点号的组合需要重复构成 4 组
     * $:匹配字符串结尾
     */
        String IP_PATTERN = "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$";
        String Ip = "192.168.252.4";
        boolean result = Ip.matches(IP_PATTERN);
        System.out.println("是否符合IP地址规则:"+result);

使用正则表达式来匹配一段文本中的特定种类字符,是比较常用的一种方式,下面是对常用的正则匹配做了一个归纳整理。

详情见常见正则表达式校验 - 简书(有更加详细的内容校验)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值