验证Java中包含非英语(UTF-8)字符的电子邮件地址 [英] validating email address which contains non-english (UTF-8) character in Java

查看:109
本文介绍了验证Java中包含非英语(UTF-8)字符的电子邮件地址的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的电子邮件ID为空

闪闪发光@闪闪发光.com 

我需要在服务器端验证此类电子邮件,以便用户无法输入此类电子邮件。.

i有通过使用以下正则表达式解决了JavaScript中的类似问题-

i need to validate this type of email at server side so that user can not enter this type of email..
i have solved similar problem in javascript by using below regex-

/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/gi

但是。无法在Java中执行相同的操作。请帮助我。

提前谢谢!!!

But. unable to do same thing in java.Please help me guys.
Thanks in advance!!!

推荐答案

Java正则表达式模式(?i)[-a-z0-9 + _] [-a-z0-9 + _。] * @ [-a-z0-9] [-a -z0-9。] * \\。[az] {2,6} 就足够了。模式的含义如下:

The Java regular expression pattern (?i)[-a-z0-9+_][-a-z0-9+_.]*@[-a-z0-9][-a-z0-9.]*\\.[a-z]{2,6} should suffice. Here's what the pattern means:

(?i)            # Case insensitive flag
[-a-z0-9+_]     # First character
[-a-z0-9+_.]*   # Zero or more characters
@               # Literal '@' character
[-a-z0-9]       # Match a single character
[-a-z0-9.]*     # Match zero or more characters
\.              # Literal '.' character
[a-z]{2,6}      # Match 2 through 6 alpha characters

以下测试代码...

final String ps =
        "(?i)[-a-z0-9+_][-a-z0-9+_.]*@[-a-z0-9][-a-z0-9.]*\\.[a-z]{2,6}";
final Pattern p = Pattern.compile(ps);
for (String s : new String[] {"foo@bar.COM", "+foo@bar.COM",
        "-foo@bar.COM", "fo_o@bar.COM", "f.oo@bar.COM", "a@b.cdefgh",
        "3@4.com", "3@4.5.6-7.8.com", ".foo@bar.com", "a@b.cdefghi",
        "闪闪发光@闪闪发光.com"})
{
    final Matcher m = p.matcher(s);
    if (m.matches()) {
        System.out.println("Success: " + s);
    } else {
        System.out.println("Fail: " + s);
    }
}

...将输出:

Success: foo@bar.COM
Success: +foo@bar.COM
Success: -foo@bar.COM
Success: fo_o@bar.COM
Success: f.oo@bar.COM
Success: a@b.cdefgh
Success: 3@4.com
Success: 3@4.5.6-7.8.com
Fail: .foo@bar.com
Fail: a@b.cdefghi
Fail: 闪闪发光@闪闪发光.com

通过使用 Matcher.matches()方法,您不需要包含 ^ 行首或 $ 行尾边界匹配结构,因为 Matcher.matches()将在整个字符串上匹配。

By using the Matcher.matches() method, you don't need to include the ^ start-of-line or $ end-of-line boundary matching constructs since Matcher.matches() will match on the whole string.

这篇关于验证Java中包含非英语(UTF-8)字符的电子邮件地址的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆