问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VB 在TEXT文本框中只允许输入数字0~9 如何实现

发布网友 发布时间:2022-05-09 20:23

我来回答

4个回答

热心网友 时间:2023-10-17 16:44

'手机号码文本框失去焦点时判断合法性
Private Sub txtMobile_Validate(Cancel As Boolean)

If Not IsMobile(txtMobile.Text) And Len(txtMobile.Text) > 0 Then
MsgBox "手机号码不合法,请重新输入!"
Cancel = True
txtMobile.SetFocus
End If

End Sub

'电子邮箱文本框失去焦点时判断合法性
Private Sub txtEmail_Validate(Cancel As Boolean)

If Not IsValidEmail(txtEmail.Text) And Len(txtEmail.Text) > 0 Then
MsgBox "电子邮箱不合法,请重新输入!"
Cancel = True
txtEmail.SetFocus
End If

End Sub

'**************************************************
'函数名:IsMobile
'作 用:判断是否手机号码
'参 数:ParNumber----要检查的手机号码
'返回值:True ----手机号码合法
' False ----手机号码不合法
'**************************************************
Public Function IsMobile(ByVal ParNumber As String) As Boolean

'外地手机加0就是12位
If Len(ParNumber) <> 11 And Len(ParNumber) <> 12 Then
IsMobile = False
Exit Function
End If
'130~139、150~159、180~189
If Left(ParNumber, 2) = "13" Or Left(ParNumber, 3) = "013" Or Left(ParNumber, 2) = "15" Or Left(ParNumber, 3) = "015" Or Left(ParNumber, 2) = "18" Or Left(ParNumber, 3) = "018" Then
IsMobile = True
Else
IsMobile = False
End If

End Function

'**************************************************
'函数名:IsValidEmail
'作 用:检查Email地址合法性
'参 数:Email ----要检查的Email地址
'返回值:True ----Email地址合法
' False ----Email地址不合法
'**************************************************
Public Function IsValidEmail(ByVal Email As String) As Boolean
Dim names, Name, i, c
IsValidEmail = True
names = Split(Email, "@")
If UBound(names) <> 1 Then
IsValidEmail = False
Exit Function
End If
For Each Name In names
If Len(Name) <= 0 Then
IsValidEmail = False
Exit Function
End If
For i = 1 To Len(Name)
c = LCase(Mid(Name, i, 1))
If InStr("abcdefghijklmnopqrstuvwxyz_-.", c) <= 0 And Not IsNumeric(c) Then
IsValidEmail = False
Exit Function
End If
Next
If Left(Name, 1) = "." Or Right(Name, 1) = "." Then
IsValidEmail = False
Exit Function
End If
Next
If InStr(names(1), ".") <= 0 Then
IsValidEmail = False
Exit Function
End If
i = Len(names(1)) - InStrRev(names(1), ".")
If i <> 2 And i <> 3 And i <> 4 Then
IsValidEmail = False
Exit Function
End If
If InStr(Email, "..") > 0 Then
IsValidEmail = False
End If
End Function

热心网友 时间:2023-10-17 16:45

看看合不合你意吧,随便做的,测试了合你的要求:

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = 8 Or KeyAscii = 13 Then Exit Sub
If KeyAscii > vbKey9 Or KeyAscii < vbKey0 Then KeyAscii = 0
If Len(Text1.Text) >= 11 Then KeyAscii = 0

End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Dim Num As String
'130、131、132、133、153、155、156
'134、135、136、137、138、139、150、151 157、158、159
If KeyCode = 13 Then
Num = Text1.Text
Print Len(Num)
If Len(Num) <> 11 Then GoTo wring
If Left(Num, 2) <> "13" And Left(Num, 2) <> "15" Then GoTo wring
End If
Exit Sub
wring: MsgBox "对不起,您输入的手机号码不正确,请重新输入!!", vbOKOnly, "号码输入错误"

End Sub

Private Sub Text2_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
If InStr(1, Text2.Text, "@") < 1 Then GoTo wring
If InStr(1, Text2.Text, ".") < 1 Then GoTo wring
End If
Exit Sub
wring: MsgBox "对不起,您输入的邮件地址不正确,请重新输入", vbOKOnly, "邮箱输入错误"
End Sub

热心网友 时间:2023-10-17 16:45

Private Sub Form_Load()
Text1.MaxLength = 11
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
aa = "1234567890"
If KeyAscii = 8 Then Exit Sub
If InStr(aa, Chr(KeyAscii)) = 0 Then KeyAscii = 0

End Sub

Private Sub Text1_LostFocus()
If Len(Text1) <> 11 Then
MsgBox "对不起,您输入的手机号码不正确,请重新输入!", , "注意"
Text1.SetFocus
End If

End Sub

热心网友 时间:2023-10-17 16:46

不提供直接源码,给你提供些函数吧
IsNumeric 判断数字
Instr 判断字符串包含某些字符串
Len 字符串长度
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我爱我校征文800字 建行聚财宝少一万时5小时内补上会怎样 咪哩乡文化教育 咪哩乡基础设施 咪哩村云南省玉溪市元江县咪哩乡咪哩村 咪哩乡历史文化 元江咪哩中心小学怎么样? 原神 原神胡桃进阶材料是什么? 原神 原神呢胡桃材料有哪些? 原神 原神胡桃的突破材料是什么? 如何才能让VB里的TEXT控件只能输入数字? VB 文本框只能输入数字 怎么用最简单的方法拼读英语单词 西安做无创亲子鉴定多少钱?在哪做? 昆明哪里可以做无创亲子鉴定? 昆明哪里能做无创亲子鉴定? 广州哪间医院可以做无创亲子鉴定? 哪些人群适合做无创亲子鉴定 无创亲子鉴定怎么做,沈阳哪能做? 无创亲子鉴定应该怎么做? 石家庄哪家医院可以做无创亲子鉴定?无创产前亲子鉴定靠谱吗? 石家庄哪里可以做无创亲子鉴定?无创dna亲子鉴定准吗? 武汉哪里可以做无创亲子鉴定? 为什么玥这个字手机里都打不出来 中文简体小鸭五笔王字旁的玥字怎么打 玥字用五笔怎么打 玥字拼音怎么打 玥的音调是几声,拼音是怎么写的 “玥”字用注音输入法怎么打? 用手机拼音怎么打不出来玥字 高血压,高血糖,脑梗死病人能吃什么不能吃什么? 如何在VB.NET 中限制文本框中只能输入数字 中考作文写老师把姓写上去扣分吗 怎么在VB的窗体里设置只能输入数字的文本框? vb中限制一个文本框只能输入数字和一个小数点和退格键。 VB文本框如何实现只能输入1-100数字 在VB里面,怎么建立一个文本框只能输入数字,不能输入别的字符? vb语言中,要使文本框中只能输入6位数字,应设置文本框的什么属性 vb文本框只允许输入18位数字,怎么写代码? VB6.0中 如何使text中只能输入数字? vb文本框怎样设置只能输入数字 vb6.0里怎样让一个textbox中只能输入数字,而不能输入字母,如果输入字母,会有窗口跳出提示错误? VB6.0中,怎么样让文本框只能输入数字与小数点,及退格键。 请各位帮助,谢谢 VB中让一个文本框只能输入一个数字该怎么设置 vb怎么*文本框只能输入固定数量的数字 比如文本框中只能输入20个数字 vb如何设置文本框输入只为大写字母和数字 IBM磁盘阵列服务器中的机头和扩展柜是什么意思? LENOX释成中文是什么? 21季全美超模大赛选手lenox 的ins是多少? 亚特兰大去lenox mall购物能退税么