VBScript 通配符电话号码

VBScript Wildcard telephone number

所以我目前遇到的问题是我想在电话号码上使用通配符,但似乎我不能在 switch case 中使用任何通配符

CallID = 0049555
Select Case CallID
    case "0049*"
        wscript.echo "Case 1"
    case 0049*
        wscript.echo "Case 2"
    case 004955
        wscript.echo "Case 3"
End Select

输出:案例 3

你的意思是像在 Ruby 中,下面的内容有效

case "0049555"
when /0048.*/ then print "case 1"
when /0049.*/ then print "case 2"
end

恐怕这不会与 Vbscript 一起使用,我从未见过它在 powershell 中使用但我不能确定。

你可以这样模拟..

Function evaluate(pattern, string)
  Set re = new RegExp
  With re
      re.Pattern    = pattern
      re.Global     = true
      re.IgnoreCase = true
    End With
    If re.test(string) Then evaluate = true
End Function

CallID = "0049555"
Select Case true
case evaluate("0048.*", CallID)
  wscript.echo "Case 1"
case evaluate("0049.*", CallID)
  wscript.echo "Case 2"
case evaluate("0050.*", CallID)
  wscript.echo "Case 3"
End Select

给出案例 2

Select Case (InStr(Left(CallID,4), "0049")) OR (InStr(Left(CallID,4), "+49"))
    case 1
        wscript.echo "Case 1"
    case 0
        wscript.echo "Case 0"
    case else
        wscript.echo "Case else"
End Select

我现在就这样解决了。但非常感谢@peter