Javascript 验证加拿大邮政编码的限制性正则表达式
我正在尝试验证一个加拿大邮政编码,我看到了几个正则表达式,还有更多的正则表达式,但没有一个能够正常工作。我试着用这个:Javascript 验证加拿大邮政编码的限制性正则表达式,javascript,regex,validation,Javascript,Regex,Validation,我正在尝试验证一个加拿大邮政编码,我看到了几个正则表达式,还有更多的正则表达式,但没有一个能够正常工作。我试着用这个: /[ABCEGHJKLMNPRSTVXY][0-9][ABCEGHJKLMNPRSTVWXYZ] ?[0-9][ABCEGHJKLMNPRSTVWXYZ][0-9]/gmi 正如您在中所看到的那样,这不好,应该只与第一行匹配,因为邮政编码需要,并且它是强制性的3允许的字符\u emptySpace\u 3AllowedChars,那么有了这个,我如何仅限制空白前的3个字符和空
/[ABCEGHJKLMNPRSTVXY][0-9][ABCEGHJKLMNPRSTVWXYZ] ?[0-9][ABCEGHJKLMNPRSTVWXYZ][0-9]/gmi
正如您在中所看到的那样,这不好,应该只与第一行匹配,因为邮政编码需要,并且它是强制性的3允许的字符\u emptySpace\u 3AllowedChars
,那么有了这个,我如何仅限制空白前的3个字符和空白后的3个字符,当然还有加拿大邮政编码的有效字符?有什么帮助吗
更新
根据此处发布的解决方案,解决方案如下:
/^[ABCEGHJKLMNPRSTVXY]\d[A-Za-z][ -]\d[A-Za-z]\d$/gmi
问题在于
[-]
之前的?表示可选,而空空间不是可选的。您可以测试有效匹配项如果您只需要加拿大邮政编码的正则表达式,请尝试以下操作:
^[A-Za-z]\d[A-Za-z][ -]?\d[A-Za-z]\d$
它应该完全满足您的要求如果您只需要加拿大邮政编码的正则表达式,请尝试以下操作:
^[A-Za-z]\d[A-Za-z][ -]?\d[A-Za-z]\d$
它应该完全符合您的要求使用锚定
^
和$
(参见示例)使用锚定^
和$
(参见示例)几乎在那里,如果您尝试相同的字符串,中间没有空格,您将得到匹配,我试图修复此问题,但无法看到:K1G6C9
不应匹配,它正在匹配如果在[-]
之后删除?
,它将强制它在中间有一个空格或破折号,如果尝试相同的字符串,中间没有空格,则会得到匹配,我试图修复此问题,但无法看到:K1G6C9
不应匹配,它正在匹配如果在[-]
之后删除?
,它将强制它具有空格或破折号