google搜索 站内搜索                 软件测试门户 | 软件测试培训 | 文章资料精选 | 软件测试论坛 | 测试解决方案 | 软件测试博客 | 测试招聘求职 
打印

[求助] 求一判断字符串有效的vb脚本代码(字符串只能包含数字和英文字母)

求一判断字符串有效的vb脚本代码(字符串只能包含数字和英文字母)


谢谢!!!

TOP

很简单啊~~利用Ascii来判断啊~~
不等于58 ~57、65~90、97~122

TOP

刚学,

public Function isnotvalid(strUser)
Dim i,c
  For i=1 to Len(strUser)
          c=Left(strUser,i)
     if(not(48<c<57 Or 65<c<90 Or 97<c<122))then//有误,请问应怎样判断
     isnotvalid=true
      exit Function
           end if
   next
   isnotvalid=false
end Function

是这样吗,谢谢

[ 本帖最后由 minliu 于 2006-4-13 09:23 编辑 ]

TOP

你也可以用正则表达式来判断!
你的脚本有明显的语法错误:for循环能循环吗?len中的子符要用双引号的。
  你的left函数也有错误:1,left中的字符串要用双引号;2,这里不应该用left函数,因为当i>1时返回的就是多个字符,建议你用MID函数每次获取一个字符,例:mid("strUser",i,1);  还有每次获取字符后要用Asc函数转化后才能进行比较

TOP

"len中的子符要用双引号"
应该不需要把,strUser是个参数.

TOP

你可以部分地这样修改(建议用正则表达式而不用这么麻烦!)
Dim i,c
   
  For i = 1 to len("stU123*&")

          c = asc(mid("strU123*&",i,1))
          msgbox c
          If( (asc(48)<c)and(c>asc(57)) )or ((asc(65)<c)and (c<asc(90)))or ((asc(97)<c)and(c<asc(122)))Then
             msgbox("right!")
        else
             msgbox("error!")
          End If
  Next

TOP

谢谢,请问用正则式怎么实现,麻烦了。

[ 本帖最后由 minliu 于 2006-4-13 13:08 编辑 ]

TOP

 
当前时区 GMT+8, 现在时间是 2008-11-23 21:19Copyright(C)上海博为峰软件技术有限公司 2001-2007 电话:021-64471599-8017
当您在访问网站、论坛及博客过程中遇到问题时可发送email:webmaster@51testing.com或发送论坛短信至管理员风在吹