验证Java中包含非英语(UTF-8)字符的电子邮件地址 [英] validating email address which contains non-english (UTF-8) character in Java
问题描述
我的电子邮件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屋!