簡體   English   中英

在vbs中比較兩個字符串時,修剪功能不會刪除字符串末尾的空格

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM