Non obvious uses for the LIKE operator

LIKE is probably the VB operator is most underutilized if compared to its potential. The most immediate use for this operator is to check that a string begins or ends with a given pattern. For example, it is simple to check that a Product ID is made up by a alphabetic character followed by three digits:

If ProductID Like "[A-Za-z][0-9][0-9][0-9]" Then Print "OK"' this is equivalment, because "#" stands for a digitIf ProductID Like "[A-Za-z]###" Then Print "OK"

But there are other cases when LIKE can be very useful. For example, you can check that a string contains only alphabetical characters using by transforming the condition into “check that the string doesn’t contain any non-alphabetical character”, as follows:

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

Similarly, you can check that a string contains only digits with:

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

The following statement checks that a string doesn’t contain any symbol (which means it contains only alpha-numeric characters):

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

The following statement checks that a string follows the rules for a valid VB variable name, that is is an alphabetic char followed by an alphanumeric character:

' VarName contains the string to testIf VarName like "[A-Za-z]*" And Not Mid$(VarName, 2) Like "*[!A-Z_a-z0-9]*" _    Then Print "OK"

The following statement checks that a string contains at least two spaces (consecutive or not):

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

while the following test ensures that the two spaces are not consecutive:

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

Checking a signed integer is more complicated, because you must account for the leading sign and must provide the correct number of “#” symbols:

' NumValue contains the string to testIf NumValue Like "#" Or (Len(NumValue) > 1 And NumValue Like "[-+0-9]" & _    String$(Len(NumValue) - 1, "#")) Then Print "OK" 

Finally, the following line checks whether NumValue contains a signed decimal value. In this case we must ensure that there is an (optional) leading sign, that there is only one (optional) decimal separator, and all the other characters are digits:

' NumValue contains the string to testIf 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" 

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

The Latest

your company's audio

4 Areas of Your Company Where Your Audio Really Matters

Your company probably relies on audio more than you realize. Whether you’re creating a spoken text message to a colleague or giving a speech, you want your audio to shine. Otherwise, you could cause avoidable friction points and potentially hurt your brand reputation. For example, let’s say you create a

chrome os developer mode

How to Turn on Chrome OS Developer Mode

Google’s Chrome OS is a popular operating system that is widely used on Chromebooks and other devices. While it is designed to be simple and user-friendly, there are times when users may want to access additional features and functionality. One way to do this is by turning on Chrome OS

homes in the real estate industry

Exploring the Latest Tech Trends Impacting the Real Estate Industry

The real estate industry is changing thanks to the newest technological advancements. These new developments — from blockchain and AI to virtual reality and 3D printing — are poised to change how we buy and sell homes. Real estate brokers, buyers, sellers, wholesale real estate professionals, fix and flippers, and beyond may