扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
用正则判断,
创新互联公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!为您提供成都网站制作、网站建设、成都网页设计、重庆小程序开发公司、成都网站开发、成都网站制作、成都软件开发、成都app开发是成都本地专业的网站建设和网站设计公司,等你一起来见证!
/**
* 验证手机号码格式是否正确
* @param mobiles
* @return true 表示正确 false表示不正确
*/
public static boolean isMobileNum(String mobiles) {
Pattern p = Pattern.compile("^((13[0-9])|(15[0-9])|(18[0-9]))\\d{8}");
Matcher m = p.matcher(mobiles);
return m.matches();
}
当然手机号码好像还有17开头的,对应的正则改一下就好
"^((13[0-9])|(15[0-9])|(18[0-9])|(17[0-9]))\\d{8}"
然后在你的代码里面调用这个方法,如果结果为false,就throw new MyException(“手机号码格式不正确”)一个异常。
异常定义可以去继承Exception
/**
* Created by Kevin on 2015/3/30.
*/
public class MyException extends Exception{
private String msg;
public MyException(String msg) {
super(msg);
this.msg = msg;
}
@Override
public String getMessage() {
return msg;
}
}
if(isNaN(x)){}
这个就是判断是不是数字.
如果为真,说明a不是数字 如果为假,则说明a是数字
如果你要判断长度对不对啊 也可以用
if(x.length=7||x.length=12){} 限制电话号码在7-12位之间
如果没有其他要求,下面的就可以
^(13|15|18)\\d{9}$
表示以13或15或18开头,后面9位数字结尾
public class SortTest {
public static void main(String[] args) {
String str="13020895785";
System.out.println(str.matches("^(13|15|18)\\d{9}$"));
}
}
public static boolean isMobile(String str) {
Pattern p = null;
Matcher m = null;
boolean b = false;
p = Pattern.compile("^[1][3,4,5,8][0-9]{9}$"); // 验证手机号
m = p.matcher(str);
b = m.matches();
System.out.println(b);
return b;
}
public class NiHao { public static void main(String[] args) { String str = "18946178006"; // 一个字符串 boolean flag = true;// 声明boolean变量,并为真 if (str.length() == 11) {// 判断手机号码的长度,length()方法是活的str这个字符串的长度 for (int i = 0; i str.length(); i++) {// 利用for循环,从str的第一位开始检测也就是1开始到6结束 char c = str.charAt(i);// charAt(i)是获取str这个字符串的第i+1位上的字符,也就是下标为i的char型变量,分别为1,8,9.。。。6 if (!Character.isDigit(c)) {//每次循环,都要判断一下这个c是不是数字 flag = false; //如果不是数字,将flag设置为false break; //只要有一个非数字,则终止循环 } } }else{ flag = false ; //如果长度不是11位,将flag设置为flag } if (flag) { System.out.println("是手机号"); } else { System.out.println("不是"); } } } 我给你修改了一下,看看那里还看不懂。温馨提示,手机号码可不是这样判断的,假如str="00000000000",你能说它是手机号码么?最好用正则表达式
写在前面:最好还是用正则表达式,简单易懂,易于维护
===================================
//这个方法判断是不是合法的手机号码
public boolean isPhoneNumber(String phoneNumber){
//手机号码长度
int phoneLength=phoneNumber.length();
//第一位是不是0
String phoneOne=phoneNumber.substring(0,1);
//是不是 +86形式
int is86=phoneNumber.indexOf("+86");
//是纯数字 并且长度等于11 并且第一位不是0 并且 不包含+86
return isNumeric(phoneNumber)phoneLength==11!phoneOne.equals("0")is86==-1;
}
//这个方法判断字符串是不是纯数字
public static boolean isNumeric(String str){
Pattern pattern = Pattern.compile("[0-9]*");
Matcher isNum = pattern.matcher(str);
if( !isNum.matches() ){
return false;
}
return true;
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流