我有一个简单的脚本,它需要两个字符串并比较它们。第一个末尾有一个空格,第二个则没有。
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)