asp.net 判断电话号码

CS文件中判断输入的是否为手机号或电话号码,电话号码可以包括-号,必须大于11位

if (TBoxTel.Text.Trim() == "")
{
Response.Write("<Script language=JavaScript>alert('请填写联系方式!');</Script>");
return;
}
已经有个单击事件 ImageButtonAdd_Click 了,只能在CS文件里,而且我没还学用验证控件

  在asp.net(C#)里用正则表达式验证手机号码。
  1.在ASP.NET(C#)里面有一个Regex对象,这个对象就是C#里面专门用于正则表达式操作的对象。

  1.写一小段代码用于测试。
  2.页面代码只有一个输入框用于输入待验证的手机号码和一个执行验证的按钮。
  3.cs代码里面主要是Regex dReg = new Regex("[0-9]{11,11}");
  执行验证操作,当输入不是11位的数字时候,验证失败。

  执行验证操作,当输入真实的手机号码时候,验证通过。

  当输入11位手机号码然后后面还跟了一个字符a,验证也能通过。
  原来只是对待验证的内容作了验证,只要包含手机号码,验证都能通过,
  这明显不是想要的,要的是对整个输入框的内容进行检测。

  对cs代码里面的正则对象做了修改,分别在正则字符串前后加了^和$,这样就可以对整个输入字符串做验证,而不是内容的一部分。

  修改后的验证结果

  这个时候又有疑问了,我连续输入11个1还是能验证通过,明显的,这不是手机号码,原来手机号码是由组成模式的。

  再对cs代码做修改,我们准备了移动,联通,电信的的三种手机号码正则表达式对象:
  //电信手机号码正则 string dianxin = @"^1[3578][01379]\d{8}$"; Regex dReg = new Regex(dianxin); //联通手机号正则 string liantong = @"^1[34578][01256]\d{8}$"; Regex tReg = new Regex(liantong); //移动手机号正则 string yidong = @"^(134[012345678]\d{7}|1[34578][012356789]\d{8})$"; Regex yReg = new Regex(yidong);

  执行最新的C#正则表达式验证手机号码。对11个1验证失败,其他手机号码验证通过。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-09-04
你既是用做网站,建议你还是用验证控件的好。不过你要硬用代码实现的话,那相对而言,你在代码里面做的判断就要有蛮多的啦。
我给你个建议,你试试看吧,就像在WinFroms程序里面一样,写个控制TextBox的输入值的事件,keypress,然后限制用户允许输入的键值,将它定死为只能输入数字0到9。不过这里对于电话的格式判断的代码量就有蛮可观的啦。不怕麻烦,要硬用代码实现,你就这样试试吧!这只是我个人的小小建议,如有更好的方法,请楼下补充!
第2个回答  2009-09-04
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex("((\\d{11})|^((\\d{7,8})|(\\d{4}|\\d{3})-(\\d{7,8})|(\\d{4}|\\d{3})-(\\d{7,8})-(\\d{4}|\\d{3}|\\d{2}|\\d{1})|(\\d{7,8})-(\\d{4}|\\d{3}|\\d{2}|\\d{1}))$)");
bool result = regex.IsMatch(this.TBoxTel.Text.Trim());
if (!result)
{
Response.Write("<Script language=JavaScript>alert('请填写联系方式!');</Script>");
return;
}本回答被提问者采纳
第3个回答  2009-09-04
不是有验证控件吗?
相似回答