<input type="input" id="zip" name="zip" pattern="^(^[0-9]{5}|^[a-zA-Z]{1}[0-9]{1}[a-zA-Z]{1}[0-9]{1}[a-zA-Z]{1}[0-9]{1}|[0-9]{5}[-][0-9]{4}|[A-Za-z][0-9][A-Za-z] [0-9][A-Za-z][0-9])$" data-pattern-error="For United State accepted: xxxxx or xxxxx-xxxx for Canada accepted: x1x1x1 x1x 1x1" placeholder="xxxxx-xxxx or X1X1X1 X1X 1X1" data-required-error="Please provide your zip / postal code">
它对小写的工作正常如何让它适用于大写和小写任何想法吗?
答案 0 :(得分:1)
关于你的正则表达式的一些注释:
{1}
是多余的,因为它的默认正则表达式行为?
组合选项并使部件可选,如下面的正则表达式所示^
和$
个锚是pattern
属性的默认行为。以下正则表达式是您的缩短版本以及其他改进
\d{5}(?:-\d{4})?|[a-zA-Z]\d[a-zA-Z] ?\d[a-zA-Z]\d
\d{5}(?:-\d{4})?
符合以下条件
\d{5}
匹配5位数字(?:-\d{4})?
可选择匹配-
后跟4位[a-zA-Z]\d[a-zA-Z] ?\d[a-zA-Z]\d
符合以下条件
[a-zA-Z]
匹配ASCII字母\d
匹配数字[a-zA-Z]
匹配ASCII字母
?
可选择匹配空格\d
匹配数字[a-zA-Z]
匹配ASCII字母\d
匹配数字
<form action="">
<input type="text" pattern="\d{5}(?:-\d{4})?|[a-zA-Z]\d[a-zA-Z] ?\d[a-zA-Z]\d"/>
<input type="submit"/>
</form>
&#13;