2010-04-12 10 views
12

W JavaScript próbuję użyć danych użytkownika do przeszukania mojej bazy danych. Na przykład dane wejściowe użytkownika to "potwór", a dane mojej bazy danych to "Monster". Jak mogę go dopasować bez względu na obudowę?javascript: ignorowanie wielkości liter w ciągach znaków

+0

Szukasz czegoś takiego: http://stackoverflow.com/questions/177719/javascript-case-insensitive-search – zengr

+0

@zengr Nie sądzę, że tego właśnie szukają. Dotyczy to przeszukiwania bazy danych, a nie szukania ciągu znaków: D –

Odpowiedz

23

Porównywanie wielkości liter niezwiązanych z literami JavaScript można wykonać za pomocą string.toUpperCase.

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

(Ja zakładając swój przykład baza danych jest tylko przykładem, jak bazy danych zazwyczaj ignorują sprawę ciągów :)

+0

Zapomniałeś zadzwonić do tej funkcji. – SLaks

+1

Nie ma wartości 'input' takiej, że' (input.toUpperString == "inny ciąg") ', ponieważ' "inny ciąg znaków" 'ma małe litery – Dancrumb

+0

, a następnie użyj (input.toUpperCase() ===" other ciąg ".toUpperCase()) lub toLowerCase() na obu ... – mojjj

0

należy przekonwertować ciąg zarówno javascript i bazy danych, gdzie klauzula używać małą ciąg.

Ale przypuszczam, że bazy danych takie jak serwer sql i mysql nie są rozróżniane wielkości liter.

-1

Jeśli używasz AJAX, to używasz języka po stronie serwera. Dlaczego nie pozwolisz, aby skrypt po stronie serwera znormalizował dane ?. Można nawet przekazać to zadanie do bazy danych, używając właściwych funkcji UPPER i LOWER, ale ze względów bezpieczeństwa normalizacja danych powinna być zadaniem skryptu po stronie serwera.

Możesz użyć JS do wstępnego sprawdzenia danych pod względem długości i składni, głównie w celu pomocy i zapobieżenia błędowi użytkownika, ale jedną rzeczą, której nigdy nie powinieneś robić, jest zapytanie o nieprzetworzone dane JS. Każdy może manipulować JS i zapytać a' OR 1=1; DROP TABLE users;--, nawet jeśli sprawdzasz poprawność danych.

+2

Obowiązkowe: http://xkcd.com/327/ – MatrixFrog

1

Użyj funkcji match() zamiast search().

Powiązane problemy