以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教如何验证输入格式?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=135680)

--  作者:jq_shang
--  发布时间:2019/5/31 21:19:00
--  请教如何验证输入格式?
用掩码方式验证录入格式,老是出错,不会用啊。
尝试用代码来验证,下列代码仍然是表达式错误:
If e.Sender.Value Like ### Or e.Sender.Value Like #### Then
Else
    MessageBox.show("请输入3位或4位区号数字!")
    e.Cancel = True
End If

请各位大神给予帮助。

--  作者:有点蓝
--  发布时间:2019/5/31 21:34:00
--  

If e.Sender.Value.length = 3 OrElse e.Sender.Value.length = 4 Then
Else
    MessageBox.show("请输入3位或4位区号数字!")
    e.Cancel = True
End If

--  作者:jq_shang
--  发布时间:2019/5/31 21:36:00
--  
只验证了长度啊。如何验证其必须为数字,而不能为字符?
--  作者:有点蓝
--  发布时间:2019/5/31 21:40:00
--  
参考:http://www.foxtable.com/webhelp/scr/0610.htm



--  作者:jq_shang
--  发布时间:2019/5/31 21:51:00
--  
谢谢蓝版主!
--  作者:jq_shang
--  发布时间:2019/5/31 22:05:00
--  
上面帮助版面是验证判断单个字符或数字的,还是没太搞明白,如何在代码中,用like方法来验证一串字符或数字?
--  作者:有点蓝
--  发布时间:2019/5/31 22:34:00
--  
比如:

If e.Sender.Value.length = 3 OrElse e.Sender.Value.length = 4 Then
    For Each c As Char In e.Sender.Value
        If Char.IsDigit(c) = False Then
            MessageBox.show("请输入数字!")
            e.Cancel = True
            Return
        End If
    Next
Else
    MessageBox.show("请输入3位或4位区号数字!")
    e.Cancel = True
End If

又比如
If e.Sender.Value.length = 3 OrElse e.Sender.Value.length = 4 Then
    If Val(e.Sender.Value) = 0
        MessageBox.show("请输入数字!")
        e.Cancel = True
    End If
Else
    MessageBox.show("请输入3位或4位区号数字!")
    e.Cancel = True
End If

又比如:

If e.Sender.Value.length = 3 OrElse e.Sender.Value.length = 4 Then
    Dim d As Integer
    If Integer.TryParse( e.Sender.Value,d) = false
        MessageBox.show("请输入数字!")
        e.Cancel = True
    End If
Else
    MessageBox.show("请输入3位或4位区号数字!")
    e.Cancel = True
End If

--  作者:jq_shang
--  发布时间:2019/5/31 22:41:00
--  
哦哦,这么复杂呀!谢谢蓝版主!