Android中的联系人验证

时间:2018-11-03 04:43:03

标签: android

在此,我试图验证电话号码。但是即使我输入正确的数字也不会验证。代码在下面

./docsearch.go:37:41: cannot use []redisearch.Document literal (type []redisearch.Document) as type redisearch.Document in argument to c.Index
./docsearch.go:37:41: cannot use redisearch.DefaultIndexingOptions (type redisearch.IndexingOptions) as type redisearch.Document in argument to c.Index

3 个答案:

答案 0 :(得分:2)

您的正则表达式是正确的,但是您使用的方式不正确,您需要先编译模式,然后才能使用它进行匹配。

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);
}

答案 1 :(得分:0)

第一次尝试

 final String phn=cont.getText().toString().trim();

当您的内容包含任何空格时,它将为您提供帮助。


尝试更改以下内容

 final String MobilePattern = "[0-9]";
 .......
 final String phn=cont.getText().toString().trim();
 .........

 if (!phn.matches(MobilePattern) || phn.length() != 10 ) {
           Toast.makeText(LoginActivity.this, "Invalid Contact number", Toast.LENGTH_SHORT).show();
       }

答案 2 :(得分:0)

在这里,我为您提供两步简单的解决方案,首先,允许用户仅接受有效输入。

  

请在您的XML.

中使用
android:digits="0123456789"
android:inputType="phone"
android:maxLength="10"

希望您可以轻松地理解每一行的含义。其次,您可以验证按钮的点击,如下所示。

tv_login.setOnClickListener(v -> {
        if (!isValidMobile(etPhone.getText().toString())){
            //Invalid Mobile Number
        }else {
            //Valid Mobile Number
        }
    });

private boolean isValidMobile(String phone) {
    boolean check = false;
    if (!Pattern.matches("[a-zA-Z]+", phone)) {
        if (phone.length() < 10 || phone.length() > 10) {
            check = false;
        } else {
            check = true;
        }
    } else {
        check = false;
    }
    return check;
}
  

希望这个答案可以帮助您!