html5模式为美国加拿大邮政编码大小写

时间:2018-04-05 17:42:59

标签: regex html5

<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">

它对小写的工作正常如何让它适用于大写和小写任何想法吗?

1 个答案:

答案 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匹配数字

&#13;
&#13;
<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;
&#13;
&#13;