C# - 验证美国或加拿大邮政编码code [英] C#- Validation for US or Canadian zip code

查看:308
本文介绍了C# - 验证美国或加拿大邮政编码code的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用下面的方法来验证美国或加拿大邮政编码code,但我认为这是不是为我工作的罚款。请给我建议在正规前pression的变化。

 私人布尔IsUSorCanadianZip code(字符串拉链code)
    {
        布尔isValidUsOrCanadianZip = FALSE;
        字符串模式= @^ \\ D {5} - \\ d {4} | \\ d {5} | [A-Z] \\ D [A-Z] \\ D [A-Z] \\ D $;
        正则表达式的regex ​​=新的正则表达式(模式);
        返回isValidUsOrCanadianZip = regex.IsMatch(邮政编码code);
    }

感谢。


解决方案

 字符串_usZi preGEX = @^ \\ D {5}(?:[ -  \\ S] \\ ð{4})$?;
    字符串_caZi preGEX = @^([ABCEGHJKLMNPRSTVXY] \\ D [ABCEGHJKLMNPRSTVWXYZ])\\ {0,1}(\\ D [ABCEGHJKLMNPRSTVWXYZ] \\ D)$;    私人布尔IsUsorCanadianZip code(字符串拉链code)
    {
        布尔validZip code = TRUE;
        如果((Regex.Match(邮政编码code,_usZi preGEX).Success)及!&安培;!(Regex.Match(邮政编码code,_caZi preGEX).Success))
        {
            validZip code = FALSE;
        }
        返回validZip code;
    }
}

I am using following method to validate US or Canadian zip code, but i think it is not working fine for me. Please suggest me the changes in the regular expression.

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);
    }

Thanks.

解决方案

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

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

这篇关于C# - 验证美国或加拿大邮政编码code的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆