我尝试使用 HTML input 标记的 pattern 属性使用以下代码对特定电子邮件域进行简单的客户端验证:
<input type="text" pattern="^[A-Z0-9._%+-]+@domain\.com\.ph$" />
我预计以下输入会成功: test.test@domain.com.ph
但不知何故它似乎不起作用。 我是否使用了不正确的正则表达式?
为了消除一些答案,我尝试检查以下内容:
- 浏览器支持模式验证
- 模式
^[A-Z0-9._%+-]+@domain.com.ph$
- 模式
^[A-Z0-9._%+-]+@domain.com.ph
最佳答案
删除 anchor ^
和 $
。使用 pattern
时不需要这些。
而字符类中的0-9A-Za-z_
可以用\w
代替。
input:valid {
color: green;
}
input:invalid {
color: red;
}
<input type="text" pattern="[\w.%+-]+@domain\.com\.ph" />
关于regex - 电子邮件域的 HTML 输入模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33315971/