加拿大邮政编码验证

Jim*_*mmy 53 .net c# regex

我需要M4B 1C7使用C#(.NET)正则表达式验证加拿大邮政编码(例如).

Gor*_*son 84

加拿大邮政编码不能包含字母D,F,I,O,Q或U,也不能以W或Z开头:

[ABCEGHJKLMNPRSTVXY][0-9][ABCEGHJKLMNPRSTVWXYZ][0-9][ABCEGHJKLMNPRSTVWXYZ][0-9]
Run Code Online (Sandbox Code Playgroud)

如果你想在中间有一个可选空间:

[ABCEGHJKLMNPRSTVXY][0-9][ABCEGHJKLMNPRSTVWXYZ] ?[0-9][ABCEGHJKLMNPRSTVWXYZ][0-9]
Run Code Online (Sandbox Code Playgroud)

  • 理想情况下,您应该忽略输入上的空格并将数据规范化为规范格式以进行存储.这样,人们可以输入带或不带空格的邮政编码,这无关紧要.如果需要,您可以格式化它们以用于输出. (7认同)
  • +1"加拿大邮政编码不能包含某些字母".您可能还想添加前导字母更受限制,然后是第二个和第三个. (6认同)
  • 第一个序列中不应该有F,您可以在这里查看:http://www.infinitegravity.ca/postalcodeformat.htm来验证 (2认同)

小智 5

以下是规则http://en.wikipedia.org/wiki/Postal_code#Reserved_characters

ABCEGHJKLMNPRSTVXY <-- letter used 
DFIOQU <-- letters not used because it mixes up the reader
WZ     <-- letters used but not in the first letter
With that in mind the following in the proper regex

@[ABCEGHJKLMNPRSTVXY][0-9][ABCEGHJKLMNPRSTVWXYZ][\s][0-9][ABCEGHJKLMNPRSTVWXYZ][0-9]
Run Code Online (Sandbox Code Playgroud)