在此,我试图验证电话号码。但是即使我输入正确的数字也不会验证。代码在下面
./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
答案 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;
}
希望这个答案可以帮助您!