Quiero un cuadro de texto de entrada que restrinja a los usuarios a ingresar solo números y un punto decimal.
La expresión regular que estoy usando actualmente es /[^\d.]/g .
Actualmente, esto le permite al usuario ingresar solo números y decimales, pero también permite más de un número decimal. Lo estoy usando para un cuadro de texto que permite solo una cadena de números junto con un decimal que sigue a otra cadena de números pero termina.
Código del cuadro de texto:
onkeyup= "this.value=this.value.replace(/[^\d.]/g, '' )".
Bloque html completo:Enter your second number <input type="text" id="num2" onClick="(this.value='')" onkeyup= "this.value=this.value.replace(/[^\d.]/g, '' )" />
Tengo esta expresión aquí que resalta lo que estoy buscando /^\d+(\.\d+)?/gm es solo que lo necesito completamente invertido.
/^\d+(\.\d+)?/gm /\d+(\.\d+)/gm /(^\d+[.]\d+)+[\d]+/gmLas expresiones anteriores permiten la entrada de todo menos números y decimales. Necesito permitir solo números y decimales para la entrada.
He visto otros, pero ninguno parece lograr exactamente lo que estoy buscando. Tampoco quiero permitir números negativos, pero me gustaría que sea opcional.
Cualquier orientación sería apreciada. Gracias por la ayuda.
Creo que la expresión que estás buscando es /^\d+(\.)?\d+/gm
Puede verlo con los casos de prueba que proporcionó en regex101, aquí
EDITAR: como señaló @Konrad Linkowski, esto no funciona para dígitos individuales como
1. La expresión regular actualizada(^\.*)+(^0*)+^\d+(\.\d+)?incluye este caso de borde.
Prueba esto:
/^\d+(\.\d+)?$/Debería funcionar para cualquier número decimal positivo.