gpt4 book ai didi

vbscript - 在 vbs 中比较两个字符串时,Trim 函数不会删除字符串末尾的空格

转载 作者:行者123 更新时间:2023-12-02 22:01:46 25 4
gpt4 key购买 nike

我有一个简单的脚本,它接受两个字符串并比较它们。第一个末尾有空格,第二个没有空格。

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 删除空格/空白,而不是其他类型的空白。您需要一个 RegExp 来清理带有前导/尾随 vbTab、vbCrLf 等的字符串,当您处理 .Run 或的输出时,您经常会遇到这种情况。执行。

演示片段:

>> 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

关于vbscript - 在 vbs 中比较两个字符串时,Trim 函数不会删除字符串末尾的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17675385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com