android - android中的联系人验证
问题描述
在这我试图验证电话号码。但即使我输入了正确的号码,它也不会验证。代码如下
cont=(EditText)findViewById(R.id.editcontact);
final String MobilePattern = "[0-9]{10}";
btn_log=(Button)findViewById(R.id.button_log);
btn_log.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String phn=cont.getText().toString();
if (!phn.matches(MobilePattern)) {
Toast.makeText(LoginActivity.this, "Invalid Contact number", Toast.LENGTH_SHORT).show();
} else {
Intent i = new Intent(LoginActivity.this, RegisterActivity.class);
startActivity(i);
}
}
});
解决方案
您的正则表达式是正确的,但您以不正确的方式使用它,您需要在使用它来匹配之前编译您的模式。
String patterntomatch ="[0-9]{10}";
Pattern pattern=Pattern.compile(patterntomatch);
Matcher matcher=pattern.matcher(phn);
if (!matcher.find()) {
Toast.makeText(LoginActivity.this, "Invalid Contact number", Toast.LENGTH_SHORT).show();
} else {
//To get matching text you can use
String ans = phn.substring(matcher.start(), matcher.end());
Intent i = new Intent(LoginActivity.this, RegisterActivity.class);
startActivity(i);
}
推荐阅读
- visual-studio - 创建 Visual Studio 扩展以将项目添加到 Git 历史记录页面
- reactjs - 反应蚂蚁设计日期时间选择器值单独保存
- c++ - CListCtrl::InsertItem 成功但没有显示
- python - pygit2:如何“git remote set-branches origin remote_branch_name”
- arrays - 在 Ruby 中创建一个数组
- python - 获取列表的总和
- apache-spark - PySpark 删除所有列名中所有特殊字符的特殊字符
- go - 如何将数据发送到 gohtml 模板
- javascript - 如何更改子节点 css?
- javascript - 如何排序取决于 JS 中对象的 '001'、'002' 之类的 'key'