51Testing软件测试论坛
标题:
求一判断字符串有效的vb脚本代码(字符串只能包含数字和英文字母)
[打印本页]
作者:
minliu
时间:
2006-4-12 16:20
标题:
求一判断字符串有效的vb脚本代码(字符串只能包含数字和英文字母)
谢谢!!!
作者:
Horus_Ra
时间:
2006-4-12 16:35
很简单啊~~利用Ascii来判断啊~~
不等于58 ~57、65~90、97~122
作者:
minliu
时间:
2006-4-12 23:19
刚学,
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 编辑
]
作者:
BiSheng
时间:
2006-4-13 09:38
你也可以用正则表达式来判断!
你的脚本有明显的语法错误:for循环能循环吗?len中的子符要用双引号的。
你的left函数也有错误:1,left中的字符串要用双引号;2,这里不应该用left函数,因为当i>1时返回的就是多个字符,建议你用MID函数每次获取一个字符,例:mid("strUser",i,1); 还有每次获取字符后要用Asc函数转化后才能进行比较
作者:
我要做SQAD
时间:
2006-4-13 09:44
"len中的子符要用双引号"
应该不需要把,strUser是个参数.
作者:
BiSheng
时间:
2006-4-13 09:59
你可以部分地这样修改(建议用正则表达式而不用这么麻烦!)
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
作者:
minliu
时间:
2006-4-13 11:09
谢谢,请问用正则式怎么实现,麻烦了。
[
本帖最后由 minliu 于 2006-4-13 13:08 编辑
]
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2