加拿大邮政编码的正则表达式问题

时间:2016-06-09 17:47:45

标签: regex

我正在使用这个正则表达式,但我在Asp验证中有问题可以有人帮忙吗?

^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ][ -]?\d[ABCEGHJKLMNPRSTVWXYZ]\d$/i

尝试匹配, X#X#X#, X#X-#X#, X#X#X#

    <Label For="PostalCode" Text="*Postal Code:" /><br>
          <TextBox ID="PostalCode" class="txt postal postalError" DataField="PostalCode" Placeholder="A1A 1A1" DataType="String" /> <br/>       
          <Validate Target="PostalCode" CssClass="NormalRed xmp-validation clearfix" Type="required" text="* Postal Code is required." Message=""></Validate>
          <Validate Target="PostalCode" CssClass="NormalRed xmp-validation clearfix" Type="regex" Text="* Postal Code must be formatted as follows: A1A 1A1" Message="" ValidationExpression="^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ][ -]?\d[ABCEGHJKLMNPRSTVWXYZ]\d$/i"></Validate>

3 个答案:

答案 0 :(得分:0)

您可以使用:

^[ABCEGHJ-NPRSTV-Z]\d[ABCEGHJ-NPRSTV-Z][ -]?\d[ABCEGHJ-NPRSTV-Z]\d$

请参阅live demo

答案 1 :(得分:0)

在您的表达式^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ][ -]?\d[ABCEGHJKLMNPRSTVWXYZ]\d$/i中,最后有一个$/i

$表示匹配字符串的结尾,但/i表示您似乎正在尝试捕获其他字符。这是一个不可能的案例。在字符串结尾后你不能有更多的字符。

答案 2 :(得分:0)

以下是我的解决方案,因为上述解决方案并不是因为您不能包含字母D,F,I,O,Q或U,并且不能以W或Z开头。我也是最后删除了/ i。我也允许使用小写字母。

[abceghjklmnprstvxyABCEGHJKLMNPRSTVXY]\d[abceghjklmnprstvxyABCEGHJKLMNPRSTVWXYZ][ -]?\d[abceghjklmnprstvxyABCEGHJKLMNPRSTVWXYZ]\d$