2010-04-12 381 views
12

在JavaScript中,我試圖使用用戶的輸入來搜索我的數據庫。例如,用戶輸入是「怪物」,而我的數據庫的數據是「怪物」。無論它的外殼如何我都能匹配它?javascript:忽略字符串的大小寫敏感

+0

您是否在尋找類似的東西:http://stackoverflow.com/questions/177719/javascript-case-insensitive-search – zengr 2010-04-12 00:20:17

+0

@zengr我不認爲這就是他們想要的。這關注搜索數據庫而不是搜索字符串:D – 2010-04-12 00:22:09

回答

23

Javascript字符串不區分大小寫的比較可以使用string.toUpperCase執行。

if (input.toUpperCase() === "OTHER STRING") 
    .... 

(我假設你的數據庫的例子僅僅是一個例子如數據庫通常會忽略你應該將字符串轉換:)

+0

您忘記調用該函數。 – SLaks 2010-04-12 00:30:54

+1

因爲''other string''有小寫字符,因此'input'沒有值'(input.toUpperString ==「其他字符串」)'',因爲''其他字符串''具有小寫字符 – Dancrumb 2010-04-12 00:33:58

+0

那麼使用(input.toUpperCase()===「other字符串「.toUpperCase())或toLowerCase()... – mojjj 2015-06-19 09:12:32

0

的情況下,兩個JavaScript字符串和數據庫where子句中使用小寫字母串。

但我猜數據庫像sql server和mysql在字符串方面都不區分大小寫。

-1

如果您使用的是AJAX,那麼您使用的是服務器端語言。你爲什麼不讓服務器端腳本規範化數據?您甚至可以使用適當的UPPER和LOWER函數將此任務委託給數據庫,但出於安全原因,數據規範化應該是服務器端腳本的任務。

您可以使用JS根據長度和語法預先檢查數據,主要是爲了幫助和防止用戶犯錯誤,但有一件事您應該永遠不要做的是查詢未處理的JS數據。即使您驗證數據,任何人都可以操縱JS並查詢a' OR 1=1; DROP TABLE users;--

+2

強制性:http://xkcd.com/327/ – MatrixFrog 2010-10-26 22:41:15

1

使用match()而不是search()。