您可以关闭VBScript字符串中的区分大小写吗?

您可以关闭VBScript字符串中的区分大小写吗?

问题描述:

我很确定这个答案是否定的。我知道我可以写您可以关闭VBScript字符串中的区分大小写吗?

如果LCASE(strFoo)= LCASE(的Request.QueryString( “X”))然后......

或使用INSTR,但我只是想检查有并不是埋没在注册表中的某些未记录的设置,或者是使VBScript字符串的内容与其他脚本语言一致的地方!

感谢 丹

我怀疑,因为如果有这样的事情这种选择的存在,你使用它,你将失去在大小写敏感的方式比较字符串的能力。

否。根据函数的不同,可能有选项(例如InStr)作为可选参数,但仅作直接比较,不存在全局选项。

一个鲜为人知的选项,可以很方便的是,如果你有一个字符串列表,你想看到一个字符串是否是在该列表:

Dim dicList : Set dicList = CreateObject("Scripting.Dictionary") 
Dim strTest 

dicList.CompareMode = 0 ' Binary ie case sensitive 
dicList.Add "FOO", "" 
dicList.Add "BAR", "" 
dicList.Add "Wombat", "" 

strTest = "foo" 
WScript.Echo CStr(dicList.Exists(strTest)) 

Set dicList = CreateObject("Scripting.Dictionary") 
dicList.CompareMode = 1 ' Text ie case insensitive 
dicList.Add "FOO", "" 
dicList.Add "BAR", "" 
dicList.Add "Wombat", "" 

strTest = "foo" 
WScript.Echo CStr(dicList.Exists(strTest)) 

有一个StrComp功能,它允许执行情况通过传递vbTextCompare作为第三个参数的两个字符串的敏感性比较。主要文件没有那么明显,但在这篇Hey, Scripting Guy文章中讨论过。

例如:

If StrComp(strFoo, Request.QueryString("x"), vbTextCompare) = 0 Then ... 

然而,在实践中,我使用LCaseUCase方式比StrComp多为不区分大小写字符串比较,因为它更明显,我。

+0

传入vbTextCompare(或保留第三个参数)为二进制(区分大小写)compare;传入`1`进行文本(不区分大小写)比较 – JohnB 2010-09-10 05:09:07