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