c#正则表达式验证TextBox输入的门牌号的方法,比如A12H代表A栋12层H户



单位有公寓楼A,B,C,D栋,层数从5-30层,没有13,14,24层,每层有A,B,C,D,E,F,G,H户。
 输入A12H代表A栋12层H户, C30F代表C栋30层F户.


就是第一位只能输入A,B,C,D四个字母中的一个,代表栋号
 第二位起只能输入代表楼层的数字。如
 5,6,7,8,9,10,11,12
 15,16,17,18,19,20,21,22,23
  25,26,27,28,29,30中的1个楼层数字,代表楼层。
 最后一位只能输入代表户号的字母。如A,B,C,D,E,F,G,H户之一,代表户。

如输入A12H代表A栋12层H户, C30F代表C栋30层F户.

不能输入B13D  C14H  A24F这样不吉利的楼层。
 不能输入 ABCD栋以外的其他的字母
 最后一位不能输入A,B,C,D,E,F,G,H户以外的字母。

为了验证TextBox输入,用 @"([A-D])([5-9]|(1[01256789])|(2[012356789])|30)[A-H]";//正则表达式合格验证。


程序如下:
 测试通过,

            string address = this.TextBoxAddr.Text.ToUpper();//输入转为大写字母
            string RegexStr = @"([A-D])([5-9]|(1[01256789])|(2[012356789])|30)[A-H]";//正则表达式
            MessageBox.Show(address);
             MatchCollection mc = Regex.Matches(address, RegexStr);
             foreach (Match item in mc)
             {
                 MessageBox.Show(item.Value);
             }
             if (Regex.IsMatch(address, RegexStr))
             {
                 MessageBox.Show(address + "匹配" + RegexStr);
             }
             else
             {
                 MessageBox.Show(address + "不匹配" + RegexStr);
             }

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值