Foros del Web » Programando para Internet » Javascript »

Permitir sólo números después del guión

Estas en el tema de Permitir sólo números después del guión en el foro de Javascript en Foros del Web. Estimados, necesito validar el ingreso de solo números después de un guión en una caja de texto. Por ejemplo: T001- 213123123123 Para ello necesito una ...
  #1 (permalink)  
Antiguo 24/01/2015, 09:37
Avatar de vidalsoft  
Fecha de Ingreso: julio-2008
Ubicación: /www/...
Mensajes: 339
Antigüedad: 15 años, 8 meses
Puntos: 1
Permitir sólo números después del guión

Estimados,
necesito validar el ingreso de solo números después de un guión en una caja de texto.
Por ejemplo:

T001-213123123123

Para ello necesito una expresión regular en Javascript que pueda setearla en el onkeypress de la caja de texto.

Alguien que me pueda ayudar con la expresión regular.

Muchas gracias de antemano.
__________________
Anthony Vidal Contreras | @AnthonyVidalC | Skype: vidalsystem | [email protected]
  #2 (permalink)  
Antiguo 24/01/2015, 11:01
Avatar de jsstoni  
Fecha de Ingreso: enero-2015
Ubicación: Maracaibo
Mensajes: 82
Antigüedad: 9 años, 3 meses
Puntos: 4
Respuesta: Permitir sólo números después del guión

Bueno men algo asi creo que es lo que necesitas no me llevo muy bien con la expresiones pero por lo menos el itento xd.

codigo javascript
Código Javascript:
Ver original
  1. var expreg = new RegExp("^[a-zA-Z0-9]{1,4}(-)+[0-9]{1,12}$");
  2. if(expreg.test('T001-213123123123')) {
  3.     console.log('Buena');
  4. }else {
  5.     console.log('Mala');
  6. }

http://jsfiddle.net/98pbs38n/1/
__________________
Desarrollo web Front End Realtime NodeJs
  #3 (permalink)  
Antiguo 26/01/2015, 09:41
Avatar de vidalsoft  
Fecha de Ingreso: julio-2008
Ubicación: /www/...
Mensajes: 339
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Permitir sólo números después del guión

Gracias amigo, pero funciona bien en consola. Pero no funciona cuando lo pongo dentro del keypress.

Que puede estar pasando?

Este es mi código:
Código Javascript:
Ver original
  1. $(document).ready(function (e) {
  2.             $('#txtNombreTelefono').bind('keypress', function (e) {
  3.                 if ($("#cboTipoConsulta").val() == "6" || $("#cboTipoConsulta").val() == "7" || $("#cboTipoConsulta").val() == "8") {
  4.                     if (e.which === 32) {
  5.                         e.preventDefault();
  6.                         return false;
  7.                     } else {
  8.                         var regex = new RegExp("^[a-zA-Z0-9]{1,4}(-)+[0-9]{1,12}$");
  9.                         var key = String.fromCharCode(!e.charCode ? e.which : e.charCode);
  10.                         if (!regex.test(key)) {                        
  11.                             e.preventDefault();
  12.                             return false;
  13.                         }
  14.                     }
  15.                     return true;
  16.                 }
  17.             }).blur(function () {
  18.                 $(this).val(function (i, oldVal) {
  19.                     return oldVal.replace(/\s/g, '');
  20.                 });
  21.             });
  22.         });
__________________
Anthony Vidal Contreras | @AnthonyVidalC | Skype: vidalsystem | [email protected]
  #4 (permalink)  
Antiguo 26/01/2015, 11:14
Avatar de jsstoni  
Fecha de Ingreso: enero-2015
Ubicación: Maracaibo
Mensajes: 82
Antigüedad: 9 años, 3 meses
Puntos: 4
Respuesta: Permitir sólo números después del guión

esta colocando como valor a la "key" que estas precionando

!regex.test(key)

no es valor del campo ?
__________________
Desarrollo web Front End Realtime NodeJs
  #5 (permalink)  
Antiguo 26/01/2015, 15:26
Avatar de vidalsoft  
Fecha de Ingreso: julio-2008
Ubicación: /www/...
Mensajes: 339
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Permitir sólo números después del guión

Cita:
Iniciado por jsstoni Ver Mensaje
esta colocando como valor a la "key" que estas precionando

!regex.test(key)

no es valor del campo ?
No, la idea era que funcione como una especie de máscara en la caja de texto. En base al formato dado en la expresión regular.

He conseguido un fabuloso plugin de JQuery, que me solucionó todo el problema, es fácil de usarlo. Os comparto a toda la comunidad:

http://digitalbush.com/projects/masked-input-plugin/

Saludos cordiales,
__________________
Anthony Vidal Contreras | @AnthonyVidalC | Skype: vidalsystem | [email protected]
  #6 (permalink)  
Antiguo 27/01/2015, 01:43
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Permitir sólo números después del guión

Es interesante el plugin que muestras, pero para cosas tan sencillas como esta, no creo que haga falta echar mano de uno.

Código HTML:
Ver original
  1. <input type = "text" id = "foo" />

Código Javascript:
Ver original
  1. var patron1 = /[A-Z]/,
  2.     patron2 = /\d/,
  3.     patron3 = /[A-Z]{1}\d{3}/gi,
  4.     caracter;
  5.  
  6. document.querySelector("#foo").addEventListener("keypress", function(event){
  7.     caracter = String.fromCharCode(event.keyCode);
  8.    
  9.     if ((patron3.test(this.value) && this.value.length == 4) || this.value.length == 4){
  10.         this.value += "-";
  11.     }
  12.    
  13.     if ((!this.value.length && !patron1.test(caracter)) ||
  14.         (patron1.test(this.value) && !patron2.test(caracter)) ||
  15.         this.value.length == 16){
  16.         event.preventDefault();
  17.     }
  18. }, false);

DEMO

Y eso que todavía se podrían simplificar varias cosas.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: guión, permitir
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:40.