在VBScript中如何查找字符串中的“-”,并将其后面的字符放入新字符串中?

4
我正在使用VBScript,如何在字符串中查找连字符“-”,并将其后面的字符放入一个新的字符串中?
基本上我的计算机名称以房间号码结尾。
例如:PC1-3(房间3),PC1-4(房间4)等。
我正在使用:
Dim roomArray(2)
roomArray = Array("-1", "-2", "-3")

Dim item
For each item in roomArray
 If instr(strComputerName, item)
   ..do something
 End If
Next

但是由于房间-33包含“-3”等内容,我得到了错误的结果,因此如果我在字符串中找到“-”并将其后面的字符放入一个字符串中,我可以针对整个字符串进行检查,而不是使用instr函数。

谢谢您的帮助。

3个回答

2
这将获得最后一个连字符后面的所有文本:
Function GetRoomNumber(strComputerName)
    Dim hyphenIndex

    hyphenIndex = InStrRev(strComputerName, "-")
    If hyphenIndex > 0 Then
      GetRoomNumber = Mid(strComputerName, hyphenIndex+1)
    End If
End Function

在您的示例中使用方法如下:

Dim roomArray(2)
roomArray = Array("-1", "-2", "-3")

Dim item, index

For index = LBound(roomArray) To UBound(roomArray)
 item = roomArray(index)
 If ("-" & GetRoomNumber(strComputerName)) = item Then
   ..do something
 End If
Next

或者简短的版本(不使用数据验证定义函数):

...
If Mid(strComputerName, InStrRev(strComputerName, "-") ) = item Then
...

嗨awe,感谢你的工作。我有问题,因为“item”似乎是空的。为什么我不能使用MsgBox(item)?它显示一个空的信息框。谢谢Dim item 对于每个roomArray中的项目 MsgBox(item) - Jamie

1

你可以使用 right 和 instr 函数来检索此内容

dim s

s = "PC1-3 (room 3)"

msgbox right(s, len(s) - instr(s,"-"))

1

你需要检查 strComputerName 是否以 dash-roomNumber 结尾。

if Right(strComputerName,Len(item))=item Then...      

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接