我需要使用正则表达式重新创建此逻辑。
如果 $postcode.长度> 0 和 $postcode.长度<10 和$postcode的第一个字符是一个字母,(第二个或第三个字符是一个数字),那么它是一个匹配项。
我想出了以下正则表达式:
/((^[a-z]+[0-9]?[0-9]){1,9}$)/i
它需要匹配以下示例:
- B1 8PT
- SW12 TQ1
- B12 典型值
- A1AAAAAAA
- AA1AAAAAA
编辑:我当前的正则表达式与列表中的任何示例都不匹配。我不知道为什么。任何帮助将不胜感激。
这是一个模式:
^[A-Z](?=.?'d)[A-Z0-9 ]{0,8}$
演示。
我使用前瞻(?=.?'d)
来检查第二个或第三个字符,看看它是否是数字。
有一个交替:
/^[a-z](?:[0-9].{0,7}|.[0-9].{0,6})$/i