十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在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验证失败,其他手机号码验证通过。
正则表达式为var ref=/^1[3|4|5|8][0-9]\d{4,8}$/;
可以在js中实现,当失去焦点时触发事件验证
其中TextBox9指输入电话号的文本框:
Div8 是一个lable
\\获取焦点时判断文本中的值是否符合规定,目的是为了第二次获取焦点时做的
$("#TextBox9").bind("focus",function(){
var a= $(this).val();
var ref=/^1[3|4|5|8][0-9]\d{4,8}$/;
if(ref.test(a)==false)
{
$("#Div8").show();
document.getElementById("TextBox9").value="";
}
else
{
$("#Div8").html("通过验证");
}
})
\\失去焦点,失去焦点时进行验证
$("#TextBox9").bind("blur",function(){
var a= $(this).val();
var ref=/^1[3|5|8][0-9]\d{4,8}$/;
if(ref.test(a)==false)
{
$("#Div8").html("不符合验证,请输入以13,15,18开头的手机号码,并且号码不得超过11位");
}
else
{ $("#Div8").html("通过验证");}
});
var reg = new RegExp(/^((13[4-9])|(15[012789])|147|182|187|188)[0-9]{8}$/),
obj = document.getElementById("id"); //获取你的文本框值
if (reg.test(obj.value)) {
进来就是正确的手机号
}else{
//错误
}
Private Sub Command1_Click()
Dim x As String
x = InputBox("请输入一个数", , 13622012345#)
If IsNumeric(x) And Len(x) = 11 And Left(x, 3) = 136 Then
MsgBox "136手机号正确:" x
Else
MsgBox "号码错误"
End If
End Sub
引用
“Regex regex = new Regex("(133|158)\\d{9}");
if (regex.IsMatch(textBox1.Text))
{
//133和158开头的
}
else{}”