我正在尝试验证我的JSF项目中的输入并尝试创建一个正则表达式来匹配任何不应包含的字符串:
(1)字符串,如@,com,yahoo,hotmail,gamil,googlemail
(2)任何数字
(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]*)
这适用于任何数字。勺子用于分组。