Android 正则表达式验证手机号、姓名(包含少数民族)、身份证号

最近项目中新增的功能,需要对手机号、姓名、身份证号等一些信息进行验证,最好的方法是通过正则表达式来验证,网上查了一些资料,写了这几个工具方法。

1、验证手机号

规则:第一位只能是1,第二位为3-8中的数字,3-11位为任意的数字

    /**
     * 手机号号段校验,
     第1位:1;
     第2位:{3、4、5、6、7、8}任意数字;
     第3—11位:0—9任意数字
     * @param value
     * @return
     */
    public static boolean isTelPhoneNumber(String value) {
        if (value != null && value.length() == 11) {
            Pattern pattern = Pattern.compile("^1[3|4|5|6|7|8][0-9]\\d{8}$");
            Matcher matcher = pattern.matcher(value);
            return matcher.matches();
        }
        return false;
    }

2、验证姓名这里验证姓名,用户可以在输入框内输入任何东西,但是在点击验证的按钮时,会调这个方法。

验证规则是:姓名由汉字或汉字加“?”、"·"组成,而且,“点”只能有一个,“点”的位置不能在首位也不能在末尾,只有在汉字之间才会验证通过。

    /**
     * 验证输入的名字是否为“中文”或者是否包含“·”
     */
    public static boolean isLegalName(String name){
        if (name.contains("·") || name.contains("?")){
            if (name.matches("^[\\u4e00-\\u9fa5]+[·?][\\u4e00-\\u9fa5]+$")){
                return true;
            }else {
                return false;
            }
        }else {
            if (name.matches("^[\\u4e00-\\u9fa5]+$")){
                return true;
            }else {
                return false;
            }
        }
    }

3、验证身份证号

验证身份证号

规则是:由15位数字或18位数字(17位数字加“x”)组成,15位纯数字没什么好说的,18位的话,可以是18位纯数字,或者17位数字加“x”

    /**
     * 验证输入的身份证号是否合法
     */
    public static boolean isLegalId(String id){
        if (id.toUpperCase().matches("(^\\d{15}$)|(^\\d{17}([0-9]|X)$)")){
            return true;
        }else {
            return false;
        }
    }

以上正则表达式验证结果,通过true和false返回

时间: 2024-10-18 02:38:07

Android 正则表达式验证手机号、姓名(包含少数民族)、身份证号的相关文章

JQuery使用正则表达式验证手机号,邮箱,身份证(含有港澳台)

自己对正则验证也没系统用过,这次自己做个demo,一下子把这些全都用上了,下次有需要直接来拿了. 以下代码是在页面使用JQuery进行验证的,也有在后台进行验证的,可以试试,都一样的原理. 直接上代码:注意:(有些验证规则当然不仅仅是本文的,也许还有其他更好的,可以留言交流) 手机号:(移动-电信-联通) var tel = $("#PhoneNumber").val();//获取输入的手机号 var yidongreg = /^(134[012345678]\d{7}|1[34578

Android正则表达式验证邮箱地址

1 // 邮箱有效性验证 2 Pattern pattern = Pattern 3 .compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"); 4 Matcher mc = 5 pattern.matcher(RegistMail.getText().toString().trim()); 其中RegistMail为一个EditText控件,用来处理用户的邮箱输入. Android正则表达式验证邮箱地址,布布扣,bu

java 正则表达式 验证字符串 只包含汉字英文数字

String content = “testContent”; String regex="^[a-zA-Z0-9\u4E00-\u9FA5]+$"; Pattern pattern = Pattern.compile(regex); Matcher match=pattern.matcher(content); boolean b=match.matches(); if(b) { Toast.makeText(this, "success...", Toast.L

Python 使用正则表达式验证密码必须包含大小写字母和数字

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px ".PingFang SC Light" } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "Helvetica Neue" } span.s1 { font: 14.0px "Helvetica Neue" } span.s2 { font: 14.0px ".PingF

web开发常用的js验证,利用正则表达式验证邮箱、手机、身份证等输入

正则表达式验证 //邮箱 var emailReg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; email = document.getElementById("email").value; if (!emailReg.test(email)) { win_alert('你输入的邮箱格式不正确!'); return; } //手机号码 var phoneReg = /^(13[0-9]{9})

基于python的-使用正则表达式验证手机号

由于要用到手机号验证,所以索性写一个简单的手机号验证的代码. 1 import re 2 3 4 def main(): 5 tel = input("请输入手机号:") 6 # ret = re.match(r"1[35678]\d{9}", tel) 7 # 由于手机号位数大于11位也能匹配成功,所以修改如下: 8 ret = re.match(r"^1[35678]\d{9}$", tel) 9 10 if ret: 11 print(&q

js正则表达式 验证手机号,email地址和邮政编码

手机号码的验证(13开头和158,159开头,共11位) var re;        var ss=document.getElementById('textbox3').value;        re= /^(13[0-9]{9})|(15[89][0-9]{8})$/        if(re.test(ss))         {           document.getElementById('label3').innerText="";   //给label赋值用in

正则表达式验证手机号

1.手机号验证: if (!(/^1[3|4|5|8][0-9]\d{4,8}$/.test(mobile))) {           alert("请填写正确的手机号码!");           return;        } 原文地址:https://www.cnblogs.com/xinbaba/p/8482827.html

关于在iOS系统上复制通讯录里的电话号码,用户正则表达式验证手机号不通过的问题

这是我在iOS11系统上复制下来的手机号然后发到钉钉上的截图 你会发现除了中间的2个空格以外,最后面貌似也有一个空格,但是当你把它复制到编辑器里面的时候空格就没有了,当你点击键盘上的左右方向键移动光标的时候你会发现光标在手机号末尾停留了一次才会移动,这说明手机号末尾有一个不占位的符号.我把手机号码复制到控制台打印了一下长度 讲道理11位手机号加上中间2个空格应该是13位,但是现在长度是14位. 我把它复制下来用URL编码了一下 编码前: 编码后: 出现了这么一串. 于是乎,我目前只想到了这种方法