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
所以我目前遇到的问题是我想在电话号码上使用通配符,但似乎我不能在 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