12

在 JavaScript 中,我尝试使用用户的输入来搜索我的数据库。例如,用户输入的是“monster”,而我的数据库的数据是“Monster”。不管它的外壳如何,我怎样才能让它匹配?

4

4 回答 4

23

可以使用string.toUpperCase执行 Javascript 字符串不区分大小写的比较。

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

(我假设您的数据库示例只是一个示例,因为数据库通常会忽略字符串的大小写:)

于 2010-04-12T00:19:40.357 回答
1

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

于 2012-11-27T15:51:04.727 回答
0

您应该将 javascript 字符串和数据库 where 子句都转换为使用小写字符串。

但我想像 sql server 和 mysql 这样的数据库在字符串方面都是不区分大小写的。

于 2010-04-12T00:20:21.510 回答
-1

如果您使用的是 AJAX,那么您使用的是服务器端语言。为什么不让服务器端脚本规范化数据?您甚至可以使用正确的 UPPER 和 LOWER 函数将此任务委托给数据库,但出于安全原因,数据规范化应该是服务器端脚本的任务。

您可以使用 JS 在长度和语法方面预先检查数据,主要是为了帮助和防止用户犯错,但您永远不应该做的一件事是查询未经处理的 JS 数据。任何人都可以操作 JS 和 query a' OR 1=1; DROP TABLE users;--,即使您验证了数据。

于 2010-04-12T00:52:46.497 回答