我有以下代码:
<body>
<form action="" method="post">
<div>
<label>First Name: <input type="text" name="firstname" value=" " pattern="[a-zA-Z ]+"></input> </label>
</div>
<div>
<label>Last Name: <input type="text" name="lastname" value="" pattern="[a-zA-Z ]+"> </input> </label>
</div>
<div>
<label>Voucher: <input type="text" name="voucher" value="" pattern="^[0-9]{5}+[-]+[0-9]{5}+[-]+[A-Z]{2}*"></input> </label>
</div>
<input type="submit" value="Submit"></input>
</form>
</body>
上面的代码是我的代码,名字和姓氏都在工作,问题是凭证输入没有检查我想要的模式,它应该看起来像“12345-67890-AB”。
答案 0 :(得分:3)
删除+
和最终*
并在结尾添加$
:
^[0-9]{5}[-][0-9]{5}[-][A-Z]{2}$
或者自pattern
attribute does not require anchoring以来,您也可以使用
[0-9]{5}[-][0-9]{5}[-][A-Z]{2}
请参阅demo
说明:
^
- 字符串的开头(自pattern
字符串锚定以来没有必要)[0-9]{5}
- 正好5位数[-]
- 正好1个连字符[0-9]{5}
- 正好5位数[-]
- 正好1个连字符[A-Z]{2}
- 正好2个大写英文字母。$
- 字符串结束(再次,因为模式被锚定,可以省略)。答案 1 :(得分:2)