我有一个<input type="email"/>
,并希望它
a)是有效的电子邮件地址,
b)不同于给定的电子邮件地址-假设“ root @ localhost”。
我查看了Pattern for HTML input elements,现在我尝试编写一个排除特定值的模式。
我偶然发现了这篇帖子:A regular expression to exclude a word/string,并调查了negative look ahead,这是很有前途的。除了一件事:
如果我使用负向超前,它还将匹配以开头的给定内容,不仅是那些完全匹配的内容。
我的代码:
<input type="email" name="email" pattern="^(?!root@localhost).+$" required>
这将导致验证错误
能否请您帮我写一个从验证中完全排除一个电子邮件地址的模式?
在这里使用模式是否正确?
谢谢,
亚历山大
答案 0 :(得分:1)
您可以使用
pattern="(?!root@localhost$).*"
由于HTML5模式自动固定在两端,因此您不必将模式用^
和$
括起来。
HTML5引擎处理完属性值后的整体正则表达式看起来像/^(?:(?!root@localhost$).*)$/
(在FF和Chrome中,将使用u
标志进行编译),并将匹配除行以外的任何0个或多个字符从一个字符串的开头到结尾都中断字符,该字符不等于root@localhost
字符串。
答案 1 :(得分:0)
为什么不使用javascript验证
function validate(form) {
if (form.email === "root@localhost") {
return false;
}
return /.+\@.+\..+/.test(form.email);
}