关于EditText判断手机号的问题

我之前做的时候要用到, 但是我也不知道从哪位大神看到的,因为时间太长了,忘记了,上传代码以防忘记!!!

以下代码直接复制,创建一个类TelNumMatch 复制里面去

package com.example.administrator.nl.Yzm;

import android.util.Log;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TelNumMatch {
/**
* 10. * 移动: 2G号段(GSM网络)有139,138,137,136,135,134,159,158,152,151,150, 11. *
* 3G号段(TD-SCDMA网络)有157,182,183,188,187,181 147是移动TD上网卡专用号段. 联通: 12. *
* 2G号段(GSM网络)有130,131,132,155,156 3G号段(WCDMA网络)有186,185 电信: 13. *
* 2G号段(CDMA网络)有133,153 3G号段(CDMA网络)有189,180 14.
*/
static String YD = “^[1]{1}(([3]{1}[4-9]{1})|([5]{1}[012789]{1})|([8]{1}[12378]{1})|([4]{1}[7]{1}))[0-9]{8} ;staticStringLT=[1]1(([3]1[02]1)|([5]1[56]1)|([8]1[56]1))[09]8 ”;
static String DX = “^[1]{1}(([3]{1}[3]{1})|([5]{1}[3]{1})|([8]{1}[09]{1}))[0-9]{8}$”;

String mobPhnNum;

public TelNumMatch(String mobPhnNum) {
    this.mobPhnNum = mobPhnNum;
    Log.d("tool", mobPhnNum);
}

public int matchNum() {
    /**
     * 28. * flag = 1 YD 2 LT 3 DX 29.
     */
    int flag;//存储匹配结果
    // 判断手机号码是否是11位
    if (mobPhnNum.length() == 11) {
        // 判断手机号码是否符合中国移动的号码规则
        if (mobPhnNum.matches(YD)) {
            flag = 1;
        }
        // 判断手机号码是否符合中国联通的号码规则
        else if (mobPhnNum.matches(LT)) {
            flag = 2;
        }
        // 判断手机号码是否符合中国电信的号码规则
        else if (mobPhnNum.matches(DX)) {
            flag = 3;
        }
        // 都不适合,未知֪
        else {
            flag = 4;
        }
    }
    // 不是11位
    else {
        flag = 5;
    }
    Log.d("TelNumMatch", "flag" + flag);
    return flag;
}

//手机号码的有效性验证
public static boolean isValidPhoneNumber(String number)
{
    boolean flag=false;
    if(number.length()==11 && (number.matches(YD)||number.matches(LT)||number.matches(DX)))
    {
        flag=true;
    }
    return flag;
}

//判断手机号码是否存在
public static boolean isExistPhoneNumber(String number)
{
    return false;
}

//判断email地址是否有效
public static boolean isEmail(String email)
{
    String patternString="^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
    return isMatcher(patternString,email);
}

//是否是数字和字母
public static boolean isMatchCharOrNumber(String str)
{
    String patternString="^[\\d|a-z|A-Z]+$";
    return isMatcher(patternString,str);
}

//是否匹配
public static boolean isMatcher(String patternString,String str)
{
    boolean isValid=false;
    CharSequence inputStr =str ;
    Pattern pattern =Pattern.compile(patternString,Pattern.CASE_INSENSITIVE);
    Matcher matcher=pattern.matcher(inputStr);
    if(matcher.matches())
    {
        isValid =true;
    }
    return isValid;
}

}

小伙伴问题又来了,怎么用呢?

   login_ed_user这个是我edittext的声明
   String userPhoneNumber = login_ed_user.getText().toString();

   重要的部分来了, 重要的部分来了, 重要的部分来了!
   判断输入是否为手机号
   就是下面一句代码
  TelNumMatch.isValidPhoneNumber(userPhoneNumber)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值