【问题标题】:javascript: ignoring case sensitivity of stringsjavascript:忽略字符串的大小写敏感
【发布时间】:2011-02-06 20:03:54
【问题描述】:

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

【问题讨论】:

标签: javascript case-insensitive


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-11-18
          • 2011-06-11
          • 1970-01-01
          • 1970-01-01
          • 2012-03-04
          相关资源
          最近更新 更多