【求解】Android 手机号码验证正则表达式[2015年]

逸笙 2015-07-04 04:36:52
请问下各位,手机号码验证的正则表达式,我这里哪里出问题了?一直返回false
^((1[3,5,8][0-9])|(14[5,7])|(17[0,6,7,8]))//d{8}$

...全文
10075 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
最新的校验规则在这边 http://blog.csdn.net/linbilin_/article/details/49796617
raychongzi 2016-09-27
  • 打赏
  • 举报
回复
引用 10 楼 zhaohuofanqie 的回复:
我随便乱输,都能通过。。。。这可以?
"[1]"代表第1位为数字1,"[34578]"代表第二位可以为3、4、5、7、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位,知道了这个规律后面9位随便输入都算正确,其实并不能验证一定有这个手机号
着火番茄 2016-09-05
  • 打赏
  • 举报
回复
我随便乱输,都能通过。。。。这可以?
梦想的开拓者 2016-08-18
  • 打赏
  • 举报
回复
最新正则表达式:已经实验过了
  public static boolean isPhoneNumberValid(String phoneNumber) {
 	   boolean isValid = false;
 	   CharSequence inputStr = phoneNumber;
 	   //正则表达式
 	      
 	   String phone="^1[34578]\\d{9}$" ;
 	
 	
 	   Pattern pattern = Pattern.compile(phone);
 	   Matcher matcher = pattern.matcher(inputStr);
 	   
 	 
 	   if(matcher.matches()) {
 		   isValid = true;
 	   }
 	   return isValid;
    }
qq_33518370 2016-08-14
  • 打赏
  • 举报
回复
这个帖子不错,比刚才那个好多了
Black.C? 2016-07-14
  • 打赏
  • 举报
回复
请问楼主的正则是最新的吗,看到好像有匹配177的
tcmakebest 2015-07-04
  • 打赏
  • 举报
回复
逗号全部多余的,//换成\\就行了.
JarQ 2015-07-04
  • 打赏
  • 举报
回复
逸笙 2015-07-04
  • 打赏
  • 举报
回复
已解决,问题出在取值时,在加载view就去取了,当然是空啦,应该在OnClick里面取,哈哈哈




nameEditText = (EditText) this.findViewById(R.id.anme);
sign_in_button.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//点击事件发生时,获取输入框内容,
nameString = nameEditText.getText().toString();
isPhoneBoolean = CheckInfoUtill.isMobileNO(nameString);
Log.i("验证信息 ", isPhoneBoolean+"");

if (is11Boolean || isPhoneBoolean ) {
Log.i("验证信息 ","成功");
}else {
Log.i("验证信息 ","失败");
}
}
});




逸笙 2015-07-04
  • 打赏
  • 举报
回复
这是百度百科上的号段 电信 中国电信手机号码开头数字 2G/3G号段(CDMA2000网络)133、153、180、181、189 4G号段 177 联通 中国联通手机号码开头数字 2G号段(GSM网络)130、131、132、155、156 3G上网卡145 3G号段(WCDMA网络)185、186 4G号段 176、185[1] 移动 中国移动手机号码开头数字 2G号段(GSM网络)有134x(0-8)、135、136、137、138、139、150、151、152、158、159、182、183、184。 3G号段(TD-SCDMA网络)有157、187、188 3G上网卡 147 4G号段 178 补充 14号段以前为上网卡专属号段,如中国联通的是145,中国移动的是147等等。 170号段为虚拟运营商专属号段,170号段的 11 位手机号前四位来区分基础运营商,其中 “1700” 为中国电信的转售号码标识,“1705” 为中国移动,“1709” 为中国联通。

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧