[英]Trim function does not remove spaces at end of a string while comparing two strings in vbs
我有一個簡單的腳本,需要兩個字符串並進行比較。 第一個在末端有一個空格,第二個沒有該空格。
Function compare(str1,str2)
dim a
If strComp(trim(str1),trim(str2))=0 Then
msgbox "OK"
a=1
Else
msgbox "KO"
a=0
End If
compare=a
End Function
我以這種方式使用此功能:
s1= SUCCESSFULLY CONNECTED
s2= SUCCESSFULLY CONNECTED
result=compare(s1,s2)
s1和s2之間的區別在於s1以單個空格結尾,而s2末尾沒有空格。 這就是為什么我使用Trim函數忽略該空間的原因。 盡管如此,對於s1和s2,我總是在對話框中收到消息“ KO”。 我什至改變了情況
If trim(str1)=trim(str2) Then
但是彈出窗口仍然返回“ KO”。 這是一個奇妙的情況!
拜托,我對此感到厭倦,並希望您能幫助您了解這種情況。 先感謝您
VBScript的Trim
刪除空格/空格,而不是其他種類的空格。 在處理.Run或輸出時,通常需要使用RegExp來使用前導/后綴vbTab,vbCrLf等清理字符串。 Exec的。
演示片段:
>> s1 = "abc" & vbCrLf & " "
>> s2 = "abc"
>> WScript.Echo Len(s1), Len(s2)
>> set r = New RegExp
>> r.Global = True
>> r.Pattern = "^\s+|\s+$"
>> s1 = r.Replace(s1, "")
>> s2 = r.Replace(s2, "")
>> WScript.Echo Len(s1), Len(s2)
>> WScript.Echo CStr(s1 = s2)
>>
6 3
3 3
True
您可能想嘗試以下方法:
Dim str1, str2
str1 = "help"
str2 = "Me"
WScript.Echo str1 & str2
str1 = str1 & vbTab
WScript.Echo str1 & str2
WScript.Echo len(str1) & " " & len(str2)
If Right(str1,1) = vbTab Then
WScript.Echo left(str1,Len(str1) - 1) & str2
Else
WScript.echo "Oops"
End If
請注意,現在只需刪除最后一個字符即可刪除添加到str1
的結尾vbTab。
例如,如果要使用內部VbTab將字符串拆分為數組,則此功能非常有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.