HTML5 使用“pattern”属性的表单验证
HTML5 Form Validation With the “pattern” Attribute
我正在尝试为 HTML5 表单想出一个有效的模式。我想允许 *@student.*.edu.vn
这是我的代码:
<input
type="text"
name="mail"
pattern="([a-z]|[0-9])+(@{1})+(student)+(.)+[a-z]+(.edu.vn)"
/>
它没有像我想要的那样工作。我做错了什么?
感谢任何帮助。
模式(正则表达式)有点错误,因为您没有转义所有特殊字符,例如 .
并且其中有一些不必要的部分。尝试使用以下稍微修改过的模式:
([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
以绕过此检查。
我想出了这个解决方案,它更容易阅读并且不那么严格(这是一件好事,因为电子邮件地址可以包含比小写字母数字字符更多的字符。不要忘记使用电子邮件验证器在后端进行适当的验证。
<form>
<input
type="text"
name="mail"
pattern=".+@student\..+\.edu.vn"
/>
<input type="submit">
</form>
我正在尝试为 HTML5 表单想出一个有效的模式。我想允许 *@student.*.edu.vn
这是我的代码:
<input
type="text"
name="mail"
pattern="([a-z]|[0-9])+(@{1})+(student)+(.)+[a-z]+(.edu.vn)"
/>
它没有像我想要的那样工作。我做错了什么?
感谢任何帮助。
模式(正则表达式)有点错误,因为您没有转义所有特殊字符,例如 .
并且其中有一些不必要的部分。尝试使用以下稍微修改过的模式:
([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
以绕过此检查。
我想出了这个解决方案,它更容易阅读并且不那么严格(这是一件好事,因为电子邮件地址可以包含比小写字母数字字符更多的字符。不要忘记使用电子邮件验证器在后端进行适当的验证。
<form>
<input
type="text"
name="mail"
pattern=".+@student\..+\.edu.vn"
/>
<input type="submit">
</form>