2010-04-12 3 views
12

In JavaScript, sto provando a utilizzare l'input dell'utente per cercare nel mio database. Ad esempio, l'input dell'utente è "monster" e i dati del mio database sono "Monster". Come posso averlo match indipendentemente dal suo involucro?javascript: ignorando la distinzione tra maiuscole e minuscole delle stringhe

+0

Stai cercando qualcosa di simile a questo: http://stackoverflow.com/questions/177719/javascript-case-insensitive-search – zengr

+0

@zengr Non penso che sia quello che stanno cercando. Ciò riguarda la ricerca in un database anziché la ricerca della stringa: D –

risposta

23

I confronti con distinzione tra maiuscole e minuscole della stringa Javascript possono essere eseguiti con string.toUpperCase.

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

(sto assumendo il vostro esempio database è solo un esempio, come i database di solito ignorano il caso di stringhe :)

+0

Hai dimenticato di chiamare la funzione. – SLaks

+1

Non c'è alcun valore di 'input' tale che' (input.toUpperString == "other stringa") ', poiché' "other stringa" 'ha caratteri minuscoli – Dancrumb

+0

bene quindi usare (input.toUpperCase() ===" altro stringa ".toUpperCase()) o toLowerCase() su entrambi ... – mojjj

0

Si dovrebbe convertire sia javascript stringa e database in cui clausola per usare stringa di lettere minuscole.

Ma suppongo che database come sql server e mysql non siano tutti maiuscole e minuscole in termini di stringa.

-1

Se si utilizza AJAX, si utilizza un linguaggio lato server. Perché non lasci che lo script sul lato server normalizzi i dati ?. È anche possibile delegare questa attività al database, utilizzando le funzioni UPPER e LOWER appropriate, ma per motivi di sicurezza la normalizzazione dei dati dovrebbe essere un'attività per lo script lato server.

È possibile utilizzare JS per verificare preventivamente i dati in termini di lunghezza e sintassi, principalmente per aiutare e impedire all'utente di commettere errori, ma una cosa che non si dovrebbe mai fare è eseguire query sui dati JS non trattati. Chiunque può manipolare il JS e interrogare a' OR 1=1; DROP TABLE users;--, anche se si convalidano i dati.

+2

Obbligatorio: http://xkcd.com/327/ – MatrixFrog

1

Utilizzare match() anziché search().