Я пытаюсь проверить, есть ли у него пробел. Для меня не работает.Проверьте, содержит ли строка пробел
if (skpwords.contains(lcase(query)) And Mid(query, InStrRev(query, " "))) then
end if
Я пытаюсь проверить, есть ли у него пробел. Для меня не работает.Проверьте, содержит ли строка пробел
if (skpwords.contains(lcase(query)) And Mid(query, InStrRev(query, " "))) then
end if
Правильный способ проверить, если строка содержит символ (или подстрока) должен использовать функцию InStr()
. Он вернет однонаправленный индекс позиции внутри строки, где был найден текст. Таким образом, возвращаемое значение> 0 указывает на успешную нахождение. Например:
If InStr(query, " ") > 0 Then
' query contains a space
End If
Функция InStr()
может также принимать три или четыре аргумента. Если вы хотите, чтобы указать начальный индекс, используйте версию с тремя аргументами:
If InStr(3, query, " ") > 0 Then
' query contains a space at or after the 3rd character
End If
Если вы хотите выполнить поиск без учета регистра (по умолчанию чувствительны к регистру), а затем использовать версию четыре-аргумента. Обратите внимание, что нет трехпараметрической версии этой функции, которая позволяет указать чувствительность к регистру. Если вы хотите выполнить поиск без учета регистра, вы всегда должны указать начальный индекс, даже если вы хотите, чтобы начать поиск в начале (1
):
If InStr(1, query, "A", vbTextCompare) > 0 Then
' query contains "a" or "A"
End If
Вы могли бы разделить массив с помощью UBOUND и проверьте длину массива, чтобы определить, если есть пробелы
VBS Пример:
hi = "What is up"
spaces = Ubound(Split(hi, " "))
if (spaces = 0) then
Wscript.Echo "No Spaces"
else
Wscript.Echo "There are spaces"
end if
Самый лучший и кратчайший возможный ответ на это будет где вы используете функцию Instr. Это может быть в следующем формате:
mysentence = "This is a sentence"
if Instr(mysentence, " ")>0 Then
'do your stuff here..
else
' do else stuff here..
End if