Найти конкретную подстроку в строке VBScript - PullRequest
1 голос
/ 17 октября 2019
Dim string1 = "631;27;73"
Dim string2 = "31"

InStr(string1, string2) возвращает 2, поскольку 31 является подмножеством string1. Для моего текущего сценария я хочу соответствовать целому числу. string2 = 31 не соответствует номеру в string1, и поэтому я хочу вернуть ноль и добавить 31 к string1.

Ответы [ 2 ]

2 голосов
/ 17 октября 2019

Вы можете разбить свой список номеров на массив и сравнить каждое число:

Function NumberExists(p_sNumber, p_sList)
    Dim arrValues
    Dim iCounter

    arrValues = Split(p_sList, ";")

    For iCounter = 0 To UBound(arrValues)
        If p_sNumber = arrValues(iCounter) Then
            ' Number is found
            NumberExists = True
            Exit Function
        End If
    Next

    NumberExists = False

End Function

В вашем сценарии вы можете использовать такую ​​функцию:

Dim string1
Dim string2

string1 = "631;27;73"
string2 = "31"

MsgBox NumberExists(string2, string1)
0 голосов
/ 22 октября 2019

Попробуйте сделать этот код получить лучший результат

Dim string1
Dim string2
Dim vCount

string1 = "631;27;73"
string2 = "632"
vCount = 1

vSplit = Split(string1, ";")

For each value1 in vSplit

If value1 = string2 And vCount = 1 Then
Result = "Number Exist"
vCount = vCount+1
ElseIf  vCount = 1 Then
Result = "Number Not Exist"
End If 

Next

MsgBox(Result)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...