正则表达式来过滤电子邮件,数字和重复的打字

时间:2011-11-12 08:51:12

标签: java regex jsf regex-negation

我正在尝试验证我的JSF项目中的输入并尝试创建一个正则表达式来匹配任何不应包含的字符串:

(1)字符串,如@,com,yahoo,hotmail,gamil,googlemail

(2)任何数字

(3)同一个字母重复三次以上

3 个答案:

答案 0 :(得分:1)

的Perl:

print "good" if $string !~ /@|com|yahoo|hotmail|gmail|googlemail|\d+|(\pL)\1\1/;

另见 Regex: Matching by exclusion, without look-ahead - is it possible?

答案 1 :(得分:1)

应该注意的是,这是perl,我的第一个解决方案不起作用。

$str !~ /(@|(\w)\2\2|com|yahoo|gmail|hotmail|googlemail|\d)/

因为它现在标记为jsf而不是perl,所以这是自2.0以来jsf核心的一部分:

 <f:validateRegex pattern="@|(\w)\1\1|com|yahoo|gmail|hotmail|googlemail|\d"/>

将其放入要验证的标记

答案 2 :(得分:0)

\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b .

我声称,这个正则表达式匹配任何电子邮件地址

([0-9]*)

这适用于任何数字。勺子用于分组。

更多信息转到: http://www.regular-expressions.info/email.html

在线测试转到: http://www.regexplanet.com/simple/index.html