使用名字和姓氏验证电子邮件ID,在android中使用+号

时间:2014-09-01 11:50:10

标签: android

我想在android中验证这两种模式的电子邮件ID,但如果有人知道的话,请不要得到任何帮助:

1) Firstname+Lastname@abc.com
2) Firstname.Lastname+1@abc.com.

即使我尝试了下面给出的许多验证模式:

 1) String EMAIL_PATTERN = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
            + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";

 2) String EMAIL_PATTERN ="[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
            "\\@" +
            "[a-zA-Z0-9][a-zA-Z0-9\\-]{1,64}" +
            "(" +
            "\\." +
            "[a-zA-Z0-9][a-zA-Z0-9\\-]{1,25}" +
            ")+" ;
 3) String EMAIL_PATTERN =  "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
 4) String EMAIL_PATTERN ="/^[a-zA-Z0-9\s_]*[a-zA-Z][a-zA-Z0-9\s]*$/";

 5)public final Pattern EMAIL_ADDRESS_PATTERN = Pattern
            .compile("[a-zA-Z0-9+._%-+]{1,256}" + "@"
                    + "[a-zA-Z0-9][a-zA-Z0-9-]{0,64}" + "(" + "."
                    + "[a-zA-Z0-9][a-zA-Z0-9-]{0,25}" + ")+");

1 个答案:

答案 0 :(得分:0)

Try this : following code is working for me

// IN afterTextChanged(可编辑的s)

    if (!new EmailValidator().validate(edt.getText().toString())) {
        int ecolor = getResources().getColor(R.color.red);
        String estring = "someone@example.com";  // your error message
        ForegroundColorSpan fgcspan = new ForegroundColorSpan(ecolor);
        SpannableStringBuilder ssbuilder = new SpannableStringBuilder(estring);
        ssbuilder.setSpan(fgcspan, 0, estring.length(), 0);

        mEmail.setError(ssbuilder);
    }

公共类EmailValidator {

private Pattern pattern;
private Matcher matcher;

private static final String EMAIL_PATTERN =   "[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
       "\\@" +
       "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
       "(" +
       "\\." +
       "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" +
       ")+";



public EmailValidator() {
    pattern = Pattern.compile(EMAIL_PATTERN);
}

/**
 * Validate hex with regular expression
 *
 * @param hex
 *            hex for validation
 * @return true valid hex, false invalid hex
 */
public boolean validate(final String hex) {

    matcher = pattern.matcher(hex);
    return matcher.matches();

}

}