javascript: игнорирование чувствительности строк к регистру

в JavaScript я пытаюсь использовать ввод пользователя для поиска в моей базе данных. Например, пользовательский ввод - "монстр", а данные моей базы данных - "монстр". Как я могу получить совпадение независимо от корпуса?

4 ответов


сравнение строк Javascript без учета регистра может выполняться с помощью строку.метод touppercase.

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

(Я предполагаю, что ваш пример базы данных - это просто пример, поскольку базы данных обычно игнорируют случай строк:)


используйте match () вместо search ().


вы должны преобразовать строку javascript и предложение database where в строку нижнего регистра.

но я думаю, что базы данных, такие как sql server и mysql, нечувствительны к регистру с точки зрения строки.


Если вы используете AJAX, то вы используете серверный язык. Почему вы не позволяете сценарию на стороне сервера нормализовать данные?. Вы даже можете делегировать эту задачу базе данных, используя соответствующие верхние и нижние функции, но по соображениям безопасности нормализация данных должна быть задачей для сценария на стороне сервера.

вы можете использовать JS для предварительной проверки данных с точки зрения длины и синтаксиса, в основном для помощи и предотвращения ошибок пользователя, но одна вещь, которую вы должны никогда не делайте запрос необработанных данных JS. Любой может манипулировать JS и query a' OR 1=1; DROP TABLE users;--, даже если вы проверяете данные.