移动应用程序 phone,使用表达式的电子邮件编辑文本验证

Mobile application phone, email edit text validation using expressions

我需要在 android 应用程序中验证 phone 和电子邮件编辑文本。

电子邮件文本我希望它符合熟悉的电子邮件语法"example@gmail.com"

Phone 文本我希望它像这样 "xxx-xxx-xxxx" 其中 x 仅是数字

我希望验证发生在 OnFocusChangeListener

phoneNum.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View view, boolean hasFoucs) {
        if(!hasFoucs){
            Phone = phoneNum.getText().toString();
            if (!Phone.matches("^\d{3}-\d{3}-\d{4}$/")){
                phoneNum.setBackgroundColor(Color.parseColor("#FFBABA"));
                Toast.makeText(ctx,"Phone Syntax incorrect",Toast.LENGTH_LONG).show();
                flag_phone = 0;
            }
            else {
                phoneNum.setBackgroundColor(Color.WHITE);
                flag_phone =1;
            }
        } else {
            phoneNum.setBackgroundColor(Color.WHITE);
        }
    }
});

对于电子邮件,我试过这个

    EmailTxt.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View view, boolean hasFoucs) {
            if(!hasFoucs){
                Email = EmailTxt.getText().toString();
                if (!Email.matches("^[\w\.-]+@([\w\-]+\.)+[A-Z]{2,4}$")){
                    EmailTxt.setBackgroundColor(Color.parseColor("#FFBABA"));
                    Toast.makeText(ctx,"Email should be 10 numbers",Toast.LENGTH_LONG).show();
                    flag_email = 0;
                }
                else {
                    EmailTxt.setBackgroundColor(Color.WHITE);
                    flag_email =1;
                }
            } else {
                EmailTxt.setBackgroundColor(Color.WHITE);
            }

        }
    });

如果可以将表达式放在 matches() 中而不是使用其他方法,那将更适合我。

https://github.com/thyrlian/AwesomeValidation

使用此库执行验证。

另见: https://developer.android.com/reference/android/util/Patterns.html

Android 中的模式。

希望对您有所帮助。