Atlanta Custom Software Development 

 
   Search        Code/Page
 

User Login
Email

Password

 

Forgot the Password?
Services
» Web Development
» Maintenance
» Data Integration/BI
» Information Management
Programming
  Database
Automation
OS/Networking
Graphics
Links
Tools
» Regular Expr Tester
» Free Tools

Non obvious uses for the LIKE operator
[ All Languages » VB »  String]

Total Hit ( 2993)

Rate this article:     Poor     Excellent 

 Submit Your Question/Comment about this article

Rating


 


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:

Click here to copy the following block
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"

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:

Click here to copy the following block
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):

Click here to copy the following block
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:

Click here to copy the following block
' VarName contains the string to test
If 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):

Click here to copy the following block
If TestString Like "* * *" Then Print "OK"

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

Click here to copy the following block
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:

Click here to copy the following block
' NumValue contains the string to test
If 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:

Click here to copy the following block
' NumValue contains the string to test
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"



Submitted By : Nayan Patel  (Member Since : 5/26/2004 12:23:06 PM)

Job Description : He is the moderator of this site and currently working as an independent consultant. He works with VB.net/ASP.net, SQL Server and other MS technologies. He is MCSD.net, MCDBA and MCSE. In his free time he likes to watch funny movies and doing oil painting.
View all (893) submissions by this author  (Birth Date : 7/14/1981 )


Home   |  Comment   |  Contact Us   |  Privacy Policy   |  Terms & Conditions   |  BlogsZappySys

© 2008 BinaryWorld LLC. All rights reserved.