首页 > 解决方案 > 带有“pattern”属性的 HTML5 表单验证

问题描述

我正在尝试为 HTML5 表单提出一个有效的模式。我想允许*@student.*.edu.vn

这是我的代码:

 <input 
       type="text" 
       name="mail"  
       pattern="([a-z]|[0-9])+(@{1})+(student)+(.)+[a-z]+(.edu.vn)"
   />

它不像我想要的那样工作。我做错了什么?

任何帮助表示赞赏。

标签: htmlregexformsvalidationhtml5-validation

解决方案


模式(正则表达式)略有错误,因为您没有转义所有特殊字符,例如 the.并且其中包含一些不必要的部分。尝试使用以下稍作修改的模式:

([a-z]|[0-9])+@student\.[a-z]+\.edu\.vn

<form>
  <input type="text" name="mail" pattern="([a-z]|[0-9])+@student\.[a-z]+\.edu\.vn" />
  <input type="submit">
</form>

注意:确保您也在服务器端进行验证,因为任何在表单中输入值的人都可以删除pattern以绕过此检查。


推荐阅读