针对英语和阿拉伯语字符的Android电子邮件验证

时间:2017-03-31 22:02:49

标签: android regex email-validation

我目前正在使用此正则表达式模式来验证电子邮件地址:

android.util.Patterns.EMAIL_ADDRESS.matcher(emailAddress).matches();

它不适用于阿拉伯字符。我需要它使用英文和阿拉伯字符。

这是我在我的项目中为android(OS)合并的正则表达式模式:

    public static final Pattern EMAIL_ADDRESS
    = 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 :(得分:2)

这可能不是最佳答案,但我可以通过添加aribic字符来实现它:

[\u0621-\u064A\u0660-\u0669a-zA-Z0-9\+\.\_\%\-\+]{1,256}\@[\u0621-\u064A\u0660-\u0669a-zA-Z0-9][\u0621-\u064A\u0660-\u0669a-zA-Z0-9\-]{0,64}(\.[\u0621-\u064A\u0660-\u0669a-zA-Z0-9][\u0621-\u064A\u0660-\u0669a-zA-Z0-9\-]{0,25})+

Here's an example on regexr! (it doesn't display Arabic selection properly, but it is selected)