В JavaScript я пытаюсь использовать пользовательский ввод для поиска в моей базе данных. Например, пользовательский ввод - "монстр", а мои данные базы данных - "Монстр". Как я могу совместить его независимо от его оболочки?
Javascript: игнорирование чувствительности к регистру строк
Ответ 1
Неверное сравнение с строкой без Javascript может быть выполнено с помощью string.toUpperCase.
if (input.toUpperCase() === "OTHER STRING")
....
(Я предполагаю, что ваш пример базы данных - это просто пример, поскольку базы данных обычно игнорируют случай строк:)
Ответ 2
Используйте match() вместо поиска().
Ответ 3
Вы должны преобразовать строку javascript и базу данных where, чтобы использовать строчную строку.
Но я полагаю, что база данных, такая как sql server и mysql, нечувствительна к строкам.
Ответ 4
Если вы используете AJAX, вы используете серверный язык. Почему бы вам не позволить серверной стороне script нормализовать данные?. Вы даже можете делегировать эту задачу в базу данных, используя правильные функции UPPER и LOWER, но по соображениям безопасности нормализация данных должна быть задачей для серверной стороны script.
Вы можете использовать JS для предварительной проверки данных с точки зрения длины и синтаксиса, главным образом для помощи и предотвращения ошибок пользователя, но одна вещь, которую вы никогда не должны делать, - это необработанные JS-данные. Любой может манипулировать JS и запросить a' OR 1=1; DROP TABLE users;--
, даже если вы проверяете данные.