Asp classic 能否在VBScript字符串中关闭区分大小写功能?

Asp classic 能否在VBScript字符串中关闭区分大小写功能?,asp-classic,vbscript,Asp Classic,Vbscript,我很确定答案是否定的。我知道我会写作 如果lcase(strFoo)=lcase(request.querystring(“x”)),那么 或者使用inStr,但我只想检查注册表中或其他地方是否有未记录的设置,使VBScript字符串的内容与脚本语言的其余部分行为一致 谢谢 Dan我怀疑是否存在这样的选项,因为如果存在类似的选项,并且您使用它,您将失去以区分大小写的方式比较字符串的能力。否。根据函数的不同,选项可能作为可选参数存在(例如InStr),但对于直接比较,没有全局选项 一个鲜为人知的方

我很确定答案是否定的。我知道我会写作

如果lcase(strFoo)=lcase(request.querystring(“x”)),那么

或者使用inStr,但我只想检查注册表中或其他地方是否有未记录的设置,使VBScript字符串的内容与脚本语言的其余部分行为一致

谢谢
Dan

我怀疑是否存在这样的选项,因为如果存在类似的选项,并且您使用它,您将失去以区分大小写的方式比较字符串的能力。

否。根据函数的不同,选项可能作为可选参数存在(例如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))
有一个函数允许通过将
vbTextCompare
作为第三个参数传递,对两个字符串执行不区分大小写的比较。主要文档并没有说明这一点,但本文将对此进行讨论

例如:

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

然而,在实践中,我使用
LCase
UCase
StrComp
更适合于不区分大小写的字符串比较,因为这对我来说更为明显。

传入
0
进行vbTextCompare(或省略第三个参数)进行二进制(区分大小写)比较;传入
1
进行文本(不区分大小写)比较