在现如今的互联网应用中,手机号码已经完全取代电子邮件成为了用户注册账号的唯一标识。而随着移动网络的高速发展,各种前缀的手机号码不断推出,如何验证有效的手机号码就是程序员必须关注的功能点,你说重要吧? 好像没那么重要,你说不重要吧? 一旦程序出错,用户注册不了那就是大事!
所以你怎么看下面这段验证手机号码是否正确的代码呢?
public String validatePhone(String phoneStr) {
if (phoneStr != null) {
if (phoneStr.length() == 11) {
if (isNumeric(phoneStr)) {
if (phoneStr.startsWith("130") || phoneStr.startsWith("131") || phoneStr.startsWith("132")
|| phoneStr.startsWith("134") || phoneStr.startsWith("135") || phoneStr.startsWith("136")
|| phoneStr.startsWith("137") || phoneStr.startsWith("138") || phoneStr.startsWith("139")
|| phoneStr.startsWith("140") || phoneStr.startsWith("141") || phoneStr.startsWith("142")
|| phoneStr.startsWith("144") || phoneStr.startsWith("145") || phoneStr.startsWith("146")
|| phoneStr.startsWith("147") || phoneStr.startsWith("148") || phoneStr.startsWith("149")
|| phoneStr.startsWith("150") || phoneStr.startsWith("151") || phoneStr.startsWith("152")
|| phoneStr.startsWith("154") || phoneStr.startsWith("155") || phoneStr.startsWith("156")
|| phoneStr.startsWith("157") || phoneStr.startsWith("158") || phoneStr.startsWith("159")
|| phoneStr.startsWith("170") || phoneStr.startsWith("171") || phoneStr.startsWith("172")
|| phoneStr.startsWith("174") || phoneStr.startsWith("175") || phoneStr.startsWith("176")
|| phoneStr.startsWith("177") || phoneStr.startsWith("178") || phoneStr.startsWith("179")
|| phoneStr.startsWith("180") || phoneStr.startsWith("181") || phoneStr.startsWith("182")
|| phoneStr.startsWith("184") || phoneStr.startsWith("185") || phoneStr.startsWith("186")
|| phoneStr.startsWith("187") || phoneStr.startsWith("188") || phoneStr.startsWith("189")) {
return "手机号正确";
} else {
return "手机号规则错误";
}
} else {
return "手机号必须为数字";
}
} else {
return "手机号长度必须为11位";
}
} else {
return "手机号不能为空";
}
}
逻辑好像没有问题,但是真的好啰嗦啊!!!
那么你有更好的方法吗?
请移步下面链接发表评论,领取奖品:
https://gitee.com/oschina/bullshit-codes/blob/master/java/PhoneRuleValidate.java
码云 6 周年,我们正在征集各种坑爹代码,很多奖品等你来拿
详细的参与方法请看 https://gitee.com/oschina/bullshit-codes
------ 分割线 ------
其他坑爹代码吐槽: