您的位置:逆风者 VB 正文
原作者:www.upwinder.com 添加时间:2007-09-12 原文发表:2007-08-31 人气:70 来源:未知

VB中,相对于本身的潜在功能,LIKE可能是最被忽视的一个操作符了。它的最基本用途是检查一个字符串与给定样式的匹配程度。比如,很容易检查一个产品ID号是否由一个字母以及3个数字组成:

逆风者
If ProductID Like "[A-Za-z][0-9][0-9][0-9]" Then Print "OK"

' this is equivalment, because "#" stands for a digit

If ProductID Like "[A-Za-z]###" Then Print "OK"

除了上述基本功能,LIKE在其他情况下也非常有用。以下就一一列举:

比如,可以检查一个字符串只包含大写字母:

If Not ProductID Like "*[!A-Z]*" Then Print "OK"

同理,也可以检查一个字符串只包含数字:

If Not ProductID Like "*[!0-9]*" Then Print "OK"

下面的语句检查一个字符串只包含字母或者数字符:

If Not ProductID Like "*[!A-Za-z0-9]*" Then Print "OK"

下面的语句检查一个字符串是否为合法的VB变量名,就是说,开头是一个字母,接着跟随字母或数字符:

' VarName是被检查的字符串

If VarName like "[A-Za-z]*" And Not Mid$(VarName, 2) Like "*[!A-Z_a-z0-9]*" _

Then Print "OK"

下面的语句检查字符串是否至少包含2个空格(连续的或者间隔的):

If TestString Like "* * *" Then Print "OK"

而下面的语句进一步确认2个空格是不连续的:

If TestString Like "* ?* *" Then Print "OK"

检查一个有符号整数是很复杂的事情,因为必须计算出前导符号并且计算好"#"符号的正确数目:

' NumValue是被检测的字符串

If NumValue Like "#" Or (Len(NumValue) > 1 And NumValue Like "[- 0-9]" & _

String$(Len(NumValue) - 1, "#")) Then Print "OK"

最后一个例子是:检测NumValue是否包含一个有符号的十进制数值。这种情况下,我们必须要确定存在一个前导符号以及只有一个十进制分隔符,并且所有其他字符都是数字符:

' NumValue是被检测的字符串

If NumValue Like "#" Or (Len(NumValue) > 1 And Left$(NumValue, _

1) Like "[- .0-9]" And Not Mid$(NumValue, 2) Like "*[!.0-9]*" And Not _

NumValue Like "*.*.*" ) Then Print "OK"

相关文章

访问简单变量总是快于数组元素值
未公开的返回数组型函数加速秘诀
函数名巧做局部变量
除法运算符 \ 与 / 的区别
精用Boolean表达式,让代码再减肥
减少DoEvents语句的数量
用Mid$命令超速字符串添加操作
表单及控件的引用阻止了表单的卸载
快速初始化Variant和String类型数组
另辟蹊径处理字符串中的字符:字节数组法
火眼识破隐藏的Variant变量
为常量定义合适的类型
使用 $-类型 字符串函数会更快
创建任意长度重复字符串的简洁方法
And、Or和Xor:让我们来优化表达式
静态变量慢于动态变量
用InStr函数实现代码减肥
创建新表时,快速拷贝字段
快速清除数组部分内容
固定长度字符串数组:赋值快,释放快!

相关评论


本文章所属分类:首页 VB

  热门关键字: