您的位置:程序门 -> vb -> 基础类



怎样判断输入的数字是否合法


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


怎样判断输入的数字是否合法[已结贴,结贴人:zwswww]
发表于:2007-12-29 13:17:35 楼主
比如:1#   输入0.123     或123   是合法的。
            2#   输入0123   就是非法的。
如何实现在text中,只能输入1#样式的数字,而无法输入2#样式的数字
发表于:2007-12-29 13:38:151楼 得分:2
^{[1-9]\d*} ¦{0.\d*}$

正则
发表于:2007-12-29 13:47:592楼 得分:0
不会用,我是刚学vb的
发表于:2007-12-29 14:08:003楼 得分:0
vb中使用正则
发表于:2007-12-29 15:16:024楼 得分:0
能不能帮我简单的写一个,帮我找一个相近的礼子也行
发表于:2007-12-29 15:28:005楼 得分:2
符合1的可以用isnumeric判断,符合2的不知道具体的要求是什么,这样做试试看
isnumeric判断是否符合1
然后用cdbl强制转换为double,判断转换前和转换后的字符串是否一样,如果不一样,则说明可能输入了0123这样的数字。
发表于:2007-12-29 17:01:266楼 得分:10
vbscript code
'引用 microsoft vbscript regular expressions 5.5 'test方法 function btest(byval s as string, byval p as string) as boolean dim re as regexp set re = new regexp re.ignorecase = false re.pattern = p btest = re.test(s) end function private sub command1_click() dim p as string p = "^[^0]\d*$|[1-9]+[.]\d*|[0][.]\d+$" if not btest(text6, p) then msgbox "输入不合法" end if end sub
发表于:2007-12-29 17:04:507楼 得分:2
vbscript code
引用 microsoft vbscript regular expressions 5.5 'test方法 function btest(byval s as string, byval p as string) as boolean dim re as regexp set re = new regexp re.ignorecase = false re.pattern = p btest = re.test(s) end function private sub command21_click() dim p as string p = "^[^0]\d*$|^[1-9]+[.]\d*$|^[0][.]\d+$" if not btest(text6, p) then msgbox "输入不合法" end if end sub
发表于:2007-12-29 17:32:288楼 得分:2
这样的题目要看   具体的字串的形式   然后找到他们各自的特点

如楼主的这个题目
1#   的数据2个好象都没发现什么!

2#   的非法数据只因为第一个字符串为   "0"

这样的话   只需要判断text的第一个字符是否为   "0"   就知道该数据是否违法了

要不还可以这样:

在text的   keypess   事件中判断   若空   并且输入的keyascii=   48(0的asc   好象是这个吧!)   then   keyascii   =   0

这样就可以避免非法字符的出现了  
发表于:2007-12-29 17:47:109楼 得分:2
怎样判断输入的数字是否合法

比如:1#       输入0.123           或123       是合法的。  
                        2#       输入0123       就是非法的。  
如何实现在text中,只能输入1#样式的数字,而无法输入2#样式的数字
--------------------------
vbscript code
if lencstr(val(text1.text))=lentrim(text1.text)) then '是合法数字 else '是非法数字 end if


随手写的,你测试一下


快速检索

最新资讯
热门点击