对同一字段的电子邮件地址和手机号码进行验证。我只有一个编辑文本。需要针对电子邮件和手机号码验证此编辑文本。如果用户输入手机号码,则继续进行手机号码验证,否则,如果用户输入电子邮件,则继续进行电子邮件验证。
String EmailInputContent = emailInput.getText().toString();
// Toast.makeText(context, EmailInputContent, Toast.LENGTH_LONG).show();
String regexStr = "^[0-9]*$";
// Check for a valid email id.
if (TextUtils.isEmpty(EmailInputContent) ){
// Toast.makeText(context, " Enter the Email address in forgot password", Toast.LENGTH_LONG).show();
// emailInput.setError("Enter the Emial address");
emailInput.setError("** Please enter the Email or Mobile number");
//entriesValid== false;
//emailInput.setError(getString(R.string.error_field_required));
}
else if(emailInput.getText().toString().trim().matches(regexStr)){
}
else if (!isEmailValid(EmailInputContent)) {
// Toast.makeText(context, " Email address is invalid in forgot password", Toast.LENGTH_LONG).show();
emailInput.setError("Email address is invalid ");
//emailInput.setError(getString(R.string.error_invalid_email));
}
else
{
Intent i=new Intent(getApplication(),LoginActivity.class);
//Toast.makeText(getApplication(),"test",Toast.LENGTH_LONG).show();
ForgotPost("http://staging.rayaztech.com/flyonfly/app_forgotpassword");
startActivity(i);
}
答案 0 :(得分:3)
在Android中使用Pattern
包来匹配电子邮件和手机的输入验证
喜欢
private boolean checkValidation()
{
String input = yourEditText.getText().toString();
if(input.contains("@"))
{
return android.util.Patterns.EMAIL_ADDRESS.matcher(input).matches();
}
else
{
return android.util.Patterns.PHONE.matcher(input).matches();
}
}
答案 1 :(得分:1)
检查用户是否输入了“@”字符。 如果文本中包含“@”字符,则继续进行电子邮件检查,否则检查电话。 其他方式如果它包含所有数字,然后电话检查继续。否则,如果键入的数字以外的任何内容都要进行电子邮件检查,因为现在手机肯定无效。
答案 2 :(得分:0)
您只能使用Java代码接受电话号码和电话号码类型
EditText number1 = (EditText) layout.findViewById(R.id.edittext);
number1.setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_CLASS_PHONE);
number1.setKeyListener(DigitsKeyListener.getInstance("0123456789”));
number1.setFilters(new InputFilter[] {new InputFilter.LengthFilter(14)}); // 14 is max digits
此代码将避免在读取输入后进行大量验证
答案 3 :(得分:0)
同一编辑文本上的电子邮件和电话验证
在 Textwatcher Ontexchanged 中调用此方法
private boolean checkValidMobileNumber(String s) {
if (s != null && s.length() == 10) {
Pattern pattern = Pattern.compile(numberPattern);
Matcher matcher = pattern.matcher(s.trim());
Boolean flag = matcher.matches();
if (flag) {
binding.etMobile.setFilters(new InputFilter[]{new InputFilter.LengthFilter(10)});
}
return flag;
}
binding.etMobile.setFilters(new InputFilter[]{new InputFilter.LengthFilter(100)}
);
return false;
}
对于电子邮件验证,请使用以下代码:
private boolean isValidEmail(String email) {
Pattern pattern = Patterns.EMAIL_ADDRESS;
return pattern.matcher(email).matches();
}
在有条件的情况下调用内部按钮点击的方法