Like Operator Workaround for VBScript

VBScript lacks a Like operator. A common approach is to translate the pattern strings to use VBScript’s RegExp object, but you could use the IsLike function below instead:

Public Function IsLike(ByVal Input, ByVal Pattern)    If Input = "" Xor Pattern = "" Then        IsLike = False        Exit Function    End If    If Input = "" And Pattern = "" Then        IsLike = True        Exit Function    End If    With CreateObject("VBScript.RegExp")        .Global = True        .Pattern = "+(?=x5B*(?!x5D))"        Pattern = .Replace(Pattern, "+")        .Pattern = ".(?=x5B*(?!x5D))"        Pattern = .Replace(Pattern, ".")        .Pattern = "{(?=x5B*(?!x5D))"        Pattern = .Replace(Pattern, "{")        .Pattern = "}(?=x5B*(?!x5D))"        Pattern = .Replace(Pattern, "}")        .Pattern = "((?=x5B*(?!x5D))"        Pattern = .Replace(Pattern, "(")        .Pattern = ")(?=x5B*(?!x5D))"        Pattern = .Replace(Pattern, ")")        .Pattern = "|(?=x5B*(?!x5D))"        Pattern = .Replace(Pattern, "|")        .Pattern = "?(?=x5B*(?!x5D))"        Pattern = .Replace(Pattern, ".")        .Pattern = "*(?=x5B*(?!x5D))"        Pattern = .Replace(Pattern, ".*")        .Pattern = "#(?=x5B*(?!x5D))"        Pattern = .Replace(Pattern, "d")        .Pattern = "[!(?=x5B*(?!x5D))"        Pattern = .Replace(Pattern, "[^")        Pattern = "^" & Pattern & "$"        .Pattern = Pattern        IsLike = .Test(Input)    End WithEnd Function
Share the Post:
Share on facebook
Share on twitter
Share on linkedin

More From DevX