function validInteger(theNumber){
var anyNonDigits = new RegExp('\D','g');
if(parseInt(theNumber)&&!anyNonDigits.test(theNumber)){
return true;
}else{
return false;
}
}
Más arriba es una función que he escrito para validar algunas entradas. Quiero todos los enteros positivos. El problema que estoy enfrentando es con el objeto RegExp. Parece que debería ser súper simple, pero por alguna razón no funciona.Usar una expresión regular para validar si la entrada tiene dígitos no en ella
Por ejemplo, si paso 'f5' me hago cierto, pero si paso '5f', obtengo el falso. También estoy teniendo problemas cuando paso números negativos. -3 no queda atrapado aunque codifique la variable antes de pasarla a RegExp. Puedo solucionar esto agregando '&&parseInt(theNumber)>0
' en mi sentencia if, pero creo que el RegExp también debería darse cuenta. ¡Gracias por adelantado!
La expresión regular no funciona porque necesita escapar del carácter '\' porque '\' también tiene significado en la notación literal de cadena. 'nuevo RegExp ('\\ D', 'g');' –
... también, realmente no necesitarías el modificador 'g', ya que suena como si incluso un no dígito fuera suficiente para marcar el entrada. –
@amnotiam gracias por la información sobre por qué lo que estaba haciendo no funcionaba. Las expresiones regulares son algo en lo que todavía soy nuevo. Espero poder cambiarlo pronto. –