Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 验证加拿大邮政编码的限制性正则表达式_Javascript_Regex_Validation - Fatal编程技术网

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
不应匹配,它正在匹配如果在
[-]
之后删除
,它将强制它具有空格或破折号