regex - separador - expresion regular solo numeros javascript
Expresión regular simple para un decimal con una precisión de 2 (17)
¿No necesitas tener en cuenta la e
en e666.76
?
Con
(e|0-9)/d*/d./d{1,2)
¿Cuál es la expresión regular para un decimal con una precisión de 2?
Ejemplos válidos :
123.12
2
56754
92929292929292.12
0.21
3.1
Ejemplos inválidos:
12.1232
2.23332
e666.76
El punto decimal puede ser opcional, y también se pueden incluir números enteros.
Agregando mi respuesta también, alguien podría encontrarla útil o podría ser la mía también.
function getInteger(int){
var regx = /^[-+]?[/d.]+$/g;
return regx.test(int);
}
alert(getInteger(''-11.11''));
Chrome 56 no acepta este tipo de patrones (Chrome 56 acepta 11.11. Adicional.) Con número de tipo, use type como texto como progreso.
En general, es decir, decimales ilimitados:
^-?(([1-9]/d*)|0)(.0*[1-9](0*[1-9])*)?$
.
Esto funcionó conmigo:
(-?[0-9]+(/.[0-9]+)?)
El grupo 1 es el número de su flotante y el grupo 2 es la fracción solamente.
Esto permitirá decimal con exponenciación y hasta 2 dígitos,
^[+-]?/d+(/./d{2}([eE](-[1-9]([0-9]*)?|[+]?/d+))?)?$
Los tokens de expresiones regulares válidas varían según la implementación. La forma más genérica que conozco sería:
[0-9]+(/.[0-9][0-9]?)?
El más compacto:
/d+(/./d{1,2})?
Ambos suponen que debe tener al menos un dígito antes y uno después del lugar decimal.
Para requerir que toda la cadena sea un número de este formulario, envuelva la expresión en las etiquetas de inicio y fin, como (en el formulario de Perl):
^/d+(/./d{1,2})?$
AÑADIDO: Envuelto la porción fraccionaria en ()? para que sea opcional. Tenga en cuenta que esto excluye formas como "12". Incluir eso sería más como ^/d+/.?/d{0,2}$
.
Agregado: use este formato ^/d{1,6}(/./d{1,2})?$
Para detener la repetición y dar una restricción a toda la parte del valor decimal.
Para incluir un signo menos opcional y no permitir números como 015
(que puede confundirse con números octales) escriba:
-?(0|([1-9]/d*))(/./d+)?
Para los números que no tienen un separador de miles, me gusta esta expresión regular simple y compacta:
/d+(/./d{2})?|/./d{2}
o, para no limitarse a una precisión de 2:
/d+(/./d*)?|/./d+
Los últimos partidos
1
100
100.
100.74
100.7
0.7
.7
.72
Y no coincide con una cadena vacía (como / d *.? / D *)
Probé uno con mi proyecto. Esto permite números con + | -
+ | -
señales también.
/^(/+|-)?[0-9]{0,}((/.){1}[0-9]{1,}){0,1}$/
Prueba esto
(//+|-)?([0-9]+(//.[0-9]+))
Permitirá signos positivos y negativos también.
Respuesta principal valida 5.
o 5,
entradas.
este código lo maneja (pero en mi ejemplo los números negativos están prohibidos):
/^[0-9]+([.,][0-9]{1,2})?$/;
los resultados son abajo
true => "0" / true => "0.00" / true => "0.0" / true => "0,00" / true => "0,0" / true => "1,2" true => "1.1" / true => "1" / true => "100" true => "100.00" / true => "100.0" / true => "1.11" / true => "1,11" / false => "-5" / false => "-0.00" / true => "101" / false => "0.00.0" / true => "0.000" / true => "000.25" / false => ".25" / true => "100.01" / true => "100.2" / true => "00" / false => "5." / false => "6," / true => "82" / true => "81,3" / true => "7" / true => "7.654"
Yo uso este hasta dos decimales:
(^(/+|/-)(0|([1-9][0-9]*))(/.[0-9]{1,2})?$)|(^(0{0,1}|([1-9][0-9]*))(/.[0-9]{1,2})?$)
Pasa:
.25
0.25
10.25
+0.25
no pasa
-.25
01.25
1.
1.256
function DecimalNumberValidation() {
var amounttext = ;
if (!(/^[-+]?/d*/.?/d*$/.test(document.getElementById(''txtRemittanceNumber'').value))){
alert(''Please enter only numbers into amount textbox.'')
}
else
{
alert(''Right Number'');
}
}
La función validará cualquier número decimal. El número del clima tiene posiciones decimales o no, dirá "Número correcto" de otra manera "Ingrese solo números en el cuadro de texto de cantidad". Aparecerá un mensaje de alerta.
Gracias... :)
^[0-9]+(/.([0-9]{1,2})?)?$
Hará cosas como 12.
aceptado. Esto no es lo que comúnmente se acepta, pero si en caso de que necesite ser "flexible", esa es una manera de hacerlo. Y, por supuesto, [0-9]
se puede reemplazar con /d
, pero supongo que es más legible de esta manera.
^[0-9]+(/.[0-9]{1,2})?$
Y como las expresiones regulares son horribles de leer, mucho menos entendidas, aquí está el equivalente verboso:
^ # Start of string
[0-9]+ # Require one or more numbers
( # Begin optional group
/. # Point must be escaped or it is treated as "any character"
[0-9]{1,2} # One or two numbers
)? # End group--signify that it''s optional with "?"
$ # End of string
Puede reemplazar [0-9]
con /d
en la mayoría de las implementaciones de expresiones regulares (incluyendo PCRE , la más común). Lo he dejado como [0-9]
porque creo que es más fácil de leer.
Además, aquí está el sencillo script de Python que usé para comprobarlo:
import re
deci_num_checker = re.compile(r"""^[0-9]+(/.[0-9]{1,2})?$""")
valid = ["123.12", "2", "56754", "92929292929292.12", "0.21", "3.1"]
invalid = ["12.1232", "2.23332", "e666.76"]
assert len([deci_num_checker.match(x) != None for x in valid]) == len(valid)
assert [deci_num_checker.match(x) == None for x in invalid].count(False) == 0
preg_match("/^-?/d+[/.]?/d/d$/", $sum)