javascript:忽略字符串的区分大小写

javascript: ignoring case sensitivity of strings

在javascript中,我尝试使用用户的输入来搜索我的数据库。例如,用户输入是"monster",我的数据库数据是"monster"。我怎么能让它匹配,不管它的外壳是什么?


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

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

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


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


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

但我想像SQL Server和MySQL这样的数据库在字符串方面都不区分大小写。


如果您使用的是Ajax,那么您使用的是服务器端语言。为什么不让服务器端脚本规范化数据?。您甚至可以使用适当的上下函数将此任务委托给数据库,但出于安全原因,数据规范化应该是服务器端脚本的一项任务。

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