2010-04-12 140 views
12

En JavaScript, intento usar la entrada del usuario para buscar en mi base de datos. Por ejemplo, la entrada del usuario es "monstruo" y los datos de mi base de datos son "Monstruo". ¿Cómo puedo hacer que coincida independientemente de su carcasa?javascript: ignorando la distinción entre mayúsculas y minúsculas de las cadenas

+0

¿Está buscando algo como esto: http://stackoverflow.com/questions/177719/javascript-case-insensitive-search – zengr

+0

@zengr No creo que eso es lo que están buscando. Esto se refiere a buscar en una base de datos en lugar de buscar en la cadena: D –

Respuesta

23

Se pueden realizar comparaciones de cadenas de caracteres Javascript insensibles con string.toUpperCase.

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

(estoy asumiendo que su base de datos de ejemplo es sólo un ejemplo, como bases de datos por lo general ignoran el caso de las cadenas :)

+0

Olvidaste llamar a la función. – SLaks

+1

No hay ningún valor de 'input' tal que' (input.toUpperString == "other string") ', ya que' "other string" 'tiene caracteres en minúsculas – Dancrumb

+0

y luego use (input.toUpperCase() ===" other string ".toUpperCase()) o toLowerCase() en ambos ... – mojjj

0

Debe convertir ambos Javascript cuerda y base de datos en la cláusula de usar cuerdas minúsculas.

Pero supongo que una base de datos como sql server y mysql no distinguen entre mayúsculas y minúsculas en términos de cadena.

-1

Si usa AJAX, utiliza un idioma del lado del servidor. ¿Por qué no dejas que el script del lado del servidor normalice los datos ?. Incluso podría delegar esta tarea en la base de datos, utilizando las funciones UPPER y LOWER adecuadas, pero por razones de seguridad la normalización de datos debería ser una tarea para el script del lado del servidor.

Puede usar JS para verificar previamente los datos en términos de longitud y sintaxis, principalmente para ayudar y evitar que el usuario cometa errores, pero una cosa que nunca debe hacer es consultar datos JS no tratados. Cualquiera puede manipular el JS y consultar a' OR 1=1; DROP TABLE users;--, incluso si valida los datos.

+2

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

1

Use match() en lugar de search().

Cuestiones relacionadas