2008-11-20 36 views
2

我很確定這個答案是否定的。我知道我可以寫您可以關閉VBScript字符串中的區分大小寫嗎?

如果LCASE(strFoo)= LCASE(的Request.QueryString( 「X」))然後......

或使用INSTR,但我只是想檢查有並不是埋沒在註冊表中的某些未記錄的設置,或者是使VBScript字符串的內容與其他腳本語言一致的地方!

感謝 丹

回答

1

我懷疑,因爲如果有這樣的事情這種選擇的存在,你使用它,你將失去在大小寫敏感的方式比較字符串的能力。

5

否。根據函數的不同,可能有選項(例如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)) 
10

有一個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

相關問題