单位有公寓楼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);
}