Подтвердить что ты не робот

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

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

4b9b3361

Ответ 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;--, даже если вы проверяете данные.