以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  电话号码录入校验  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=83147)

--  作者:行动2015
--  发布时间:2016/4/1 15:05:00
--  电话号码录入校验
现在设计了一个录入窗口,其中有一个TEXTBOX控件是录入员工的电话号码,只能录入数字及“-”,请问如何设计校验程序,谢谢
--  作者:大红袍
--  发布时间:2016/4/1 15:10:00
--  

validating事件

 

Dim str As String = e.Sender.text
Dim reg As new System.Text.RegularExpressions.Regex("^[0-9\\-]*$")
If reg.Ismatch(str) = false Then
    msgbox("号码有误")
    e.cancel = True
End If


--  作者:大红袍
--  发布时间:2016/4/1 15:15:00
--  

复杂一点可以这样

 

Dim str As String = e.Sender.text
Dim reg As 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}))$)")
If reg.Ismatch(str) = False Then
    msgbox("号码有误")
    e.cancel = True
End If

 


--  作者:行动2015
--  发布时间:2016/4/1 15:21:00
--  
谢谢,红袍
--  作者:行动2015
--  发布时间:2016/4/1 15:33:00
--  
以下是引用大红袍在2016/4/1 15:15:00的发言:

复杂一点可以这样

 

Dim str As String = e.Sender.text
Dim reg As 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}))$)")
If reg.Ismatch(str) = False Then
    msgbox("号码有误")
    e.cancel = True
End If

 上面的关键代码请老帅解释一下啊,看着不太明白


--  作者:大红袍
--  发布时间:2016/4/1 15:34:00
--  

这个是正则的使用,看看 http://baike.baidu.com/link?url=UvubrhyhTpnt8S1hT10gqN8Iq37c9WuJ1s6IXUXp5Ubx5LF4c0HCpbYGKn04Hg0d

 


--  作者:行动2015
--  发布时间:2016/4/1 15:40:00
--  
好的