¿Cómo bloqueo los caracteres especiales para que no se escriban en un campo de entrada con jquery?
jquery
special-characters
alphanumeric
Acechador nerd
fuente
fuente
Respuestas:
Un ejemplo simple que utiliza una expresión regular que puede cambiar para permitir / no permitir lo que quiera.
fuente
Estaba buscando una respuesta que restringiera la entrada a solo caracteres alfanuméricos, pero que aún permitiera el uso de caracteres de control (por ejemplo, retroceso, eliminar, tabulación) y copiar + pegar. Ninguna de las respuestas proporcionadas que probé cumplía con todos estos requisitos, por lo que se me ocurrió lo siguiente usando el
input
evento.Editar:
como rinogo señaló en los comentarios, el fragmento de código anterior fuerza el cursor al final de la entrada cuando se escribe en el medio del texto de entrada. Creo que el siguiente fragmento de código resuelve este problema.
fuente
event.which
oevent.keycode
! ¡Ojalá pudiera +10!Respuesta corta: evitar el evento de 'pulsación de tecla':
Respuesta larga: use un complemento como jquery.alphanum
Hay varias cosas a considerar al elegir una solución:
Creo que esta área es lo suficientemente compleja como para justificar el uso de un complemento de terceros. Probé varios de los complementos disponibles, pero encontré algunos problemas con cada uno de ellos, así que seguí adelante y escribí jquery.alphanum . El código se ve así:
O para un control más detallado, agregue algunas configuraciones:
Espero eso ayude.
fuente
allow
configuración. Pero esa es la belleza de los complementos de jquery, el hecho de que puede modificarlos para adaptarlos a sus necesidades. ¡Gracias!allow
opción y funcionó bien para mí usando este código: ¿$('#firstName').alphanum({allow: "/"});
Alguna posibilidad de que pueda proporcionar más información? Si hay un error o un problema con los documentos, sería bueno solucionarlo. CheersallowOtherCharSets: false
yallowCaseless: false
. Estos interferían con la configuración establecidaallow
. Desde mi punto de vista, creo que laallow
opción debería vetar todas las demás opciones (comoallowOtherCharSets
oallowCaseless
). Entonces, si especifica un carácter en laallow
opción, debe permitirse independientemente de las otras opciones establecidas en el objeto de configuración. Lo mismo valedisallow
. Pero esta es solo mi opinión. :) Saludos de nuevo! :)allow
ydisallow
tener una prioridad más alta. Está registrado en el número 7 . Espero que ayude¡Utilice el atributo de entrada de patrón de HTML5!
fuente
Tu cuadro de texto:
Su javascript:
fuente
Utilice expresiones regulares para permitir / no permitir nada. Además, para una versión un poco más robusta que la respuesta aceptada, se pueden permitir caracteres que no tienen un valor clave asociado (retroceso, tabulación, teclas de flecha, eliminar, etc.) pasando primero por el evento de pulsación de tecla y compruebe la clave según el código clave en lugar del valor.
fuente
Eche un vistazo al complemento alfanumérico jQuery. https://github.com/KevinSheedy/jquery.alphanum
fuente
Escriba un código javascript en el evento onkeypress de textbox. según el requisito, permita y restrinja el carácter en su cuadro de texto
fuente
Utilizo este código modificando otros que vi. Solo es grandioso para que el usuario escriba si la tecla presionada o el texto pegado pasa la prueba de patrón (coincidencia) (este ejemplo es una entrada de texto que solo permite 8 dígitos)
fuente
!e.charCode ? e.which : e.charCode
y no simplementee.charCode ? e.charCode : e.which
?este es un ejemplo que evita que el usuario escriba el carácter "a"
referencia de códigos clave aquí:
http://www.expandinghead.net/keycode.html
fuente
fuente
Sí, puede hacerlo usando jQuery como:
y el script para su user_availability.php será:
Intenté agregar para / y \ pero no tuve éxito.
También puede hacerlo usando javascript y el código será:
fuente
solo los números:
o por tiempo incluido ":"
también incluye eliminar y retroceder:
Desafortunadamente, no lo hizo funcionar en un iMAC
fuente
Quería comentar sobre el comentario de Alex a la respuesta de Dale. No es posible (¿primero necesita cuánta "rep"? Eso no sucederá muy pronto .. sistema extraño). Entonces, como respuesta:
Se puede agregar retroceso agregando \ b a la definición de expresiones regulares como esta: [a-zA-Z0-9 \ b]. O simplemente permite todo el rango latino, incluidos más o menos caracteres "no exóticos" (también controlan caracteres como retroceso): ^ [\ u0000- \ u024F \ u20AC] + $
Solo el carácter unicode real fuera del latín está el símbolo del euro (20ac), agregue lo que necesite más.
Para manejar también la entrada ingresada a través de copiar y pegar, simplemente vincule también al evento "cambiar" y verifique la entrada allí también, eliminándola o eliminándola / dando un mensaje de error como "caracteres no admitidos".
fuente
Restrinja los caracteres especiales al presionar teclas. Aquí hay una página de prueba para códigos clave: http://www.asquare.net/javascript/tests/KeyCode.html
En Angular, necesitaba un formato de moneda adecuado en mi campo de texto. Mi solución:
En el html agregue la directiva
y en el controlador angular correspondiente solo permito que haya solo 1 período, convertir texto en número y agregar redondeo de números en 'desenfoque'
fuente
Para reemplazar caracteres especiales, espaciar y convertir a minúsculas
fuente
fuente
Permitir solo números en TextBox (restringir alfabetos y caracteres especiales)
fuente
fuente