帮忙看一下

lk_cool 2003-12-06 09:19:37

这段小函数是过滤掉text中的非数值字符

可是有错误

例如:12354a就可以通过检测!

为什么?

Function Checknum(Strc As String) As Integer

Dim I,J As Integer
Dim Tstr As String

I = Len(Strc)

For J = 1 To I

Tstr = Mid(Strc, J, 1)

J = J + 1

If Asc(Tstr) >= 48 Then

If Asc(Tstr) <= 57 Then
Checknum = 1
Else
Checknum = 2
Exit Function
End If

Else

Checknum = 2
Exit Function
End If

Next

End Function
...全文
46 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lk_cool 2003-12-06
  • 打赏
  • 举报
回复
thanks!
ahbbnimor 2003-12-06
  • 打赏
  • 举报
回复
如果你想要把非数字字符去掉而只保留数字的话,那这样写


Function Checknum(Strc As String) As string
Dim I,J As Integer

Dim Tstr,re As String
I = Len(Strc)
re=""
For J = 1 To I

Tstr = Mid(Strc, J, 1)
if asc(Tstr)<=58 and asc(Tstr)>=47 then
re=re & Tstr
end if

next J

Checknum=re

End Function

ahbbnimor 2003-12-06
  • 打赏
  • 举报
回复
上面我只是判断有没有非数字字符.有的话函数返回值为false,否则为true.你可以根据你自己的需要再改.
ahbbnimor 2003-12-06
  • 打赏
  • 举报
回复
Function Checknum(Strc As String) As boolean
Dim I,J As Integer
Dim Tstr As String
I = Len(Strc)

For J = 1 To I

Tstr = Mid(Strc, J, 1)
if asc(Tstr)>=58 or asc(Tstr)<=47 then
msgbox "有非数字字符",vbokonly,"error"
Checknum=false
exit function
end if
next J

Checknum=true

End Function

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧