簡體   English   中英

C# - 驗證美國或加拿大郵政編碼

[英]C#- Validation for US or Canadian zip code

我使用以下方法來驗證美國或加拿大郵政編碼,但我認為它對我不起作用。 請建議我正則表達式的變化。

private bool IsUSorCanadianZipCode(string zipCode)
    {
        bool isValidUsOrCanadianZip = false;
        string pattern = @"^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$";
        Regex regex = new Regex(pattern);
        return isValidUsOrCanadianZip = regex.IsMatch(zipCode);
    }

謝謝。

    var _usZipRegEx = @"^\d{5}(?:[-\s]\d{4})?$";
    var _caZipRegEx = @"^([ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ])\ {0,1}(\d[ABCEGHJKLMNPRSTVWXYZ]\d)$";

    private bool IsUSOrCanadianZipCode(string zipCode)
    {
        var validZipCode = true;
        if ((!Regex.Match(zipCode, _usZipRegEx).Success) && (!Regex.Match(zipCode, _caZipRegEx).Success))
        {
            validZipCode = false;
        }
        return validZipCode;
    }
}

如果您使用的是數據注釋驗證器,則可以使用如下的RegularExpression屬性:

[RegularExpression(@"(^\d{5}(-\d{4})?$)|(^[ABCEGHJKLMNPRSTVXYabceghjklmnprstvxy]{1}\d{1}[ABCEGHJKLMNPRSTVWXYZabceghjklmnprstv‌​xy]{1} *\d{1}[ABCEGHJKLMNPRSTVWXYZabceghjklmnprstvxy]{1}\d{1}$)", ErrorMessage = "That postal code is not a valid US or Canadian postal code.")]

(正則表達式來自http://geekswithblogs.net/MainaD/archive/2007/12/03/117321.aspx上面的@huMptyduMpty鏈接,但我的正則表達式允許大寫和小寫字母)

“在我的機器上”工作的美國郵政編碼驗證是

[RegularExpression(@"\d{5}$", ErrorMessage = "Invalid Zip Code")]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM