Java Regex:
String regex = "(?i)^[\\w.-][\\+\\w.-]*+@[\\w.-]+\\.[a-z]{2,4}$";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher("santo+abc@gmail.com");
System.out.println(matcher.matches());
JS Regex:
var regex = /^[\w.-][\w\+.-]*+@[\w.-]+\.[a-z]{2,4}$/i;
但JS正则表达式不是一个有效的表达式。不知道我在这里缺少什么。请指导
答案 0 :(得分:0)
*+
是占有量词。它就像*
,但如果匹配的次数少于可用的匹配则失败。但是,由于@
无法与[\w\+.-]
匹配,因此您可以将其替换为*
。
var regex = /^[\w.-][\w\+.-]*@[\w.-]+\.[a-z]{2,4}$/i;
此外,请勿使用此正则表达式来验证电子邮件地址;这是不正确的。请参阅Regex validation of email addresses according to RFC5321/RFC5322了解正确的内容。
答案 1 :(得分:0)
尝试:
/^[\w.-][\w\+.-]*@[\w.-]+\.[a-z]{2,4}$/i
我在+
之后删除了*
,因为JavaScript并不支持占有量词。
您可以在此处试用此正则表达式:https://regex101.com/r/FmUF5M/1