Código:
Ambas funcionan. Ahora mis dudas:var funcion1 = function(cadena) { var regex = /^[\d\.]*$/i; return regex.test(cadena); } var funcion2 = function(cadena) { return cadena.replace(/[^0-9\,]/g,'').replace(/[^0-9]/g,'.'); }
1)Con la funcion1
La idea de la primera es verificar si una cadena contine sólo digitos y puntos. Es decir, algo como "1.32432432.123" es valido y algo como '121.1dsfs,23 9' invalido.
La cosa es que debo actualizarla para que la expresion varíe, ya que en algunos casos podría ser de números y puntos y en otros de números y comas. Algo como:
Código:
2) La duda con funcion2 es similiar, la idea inicial es que yo entregase una cadena con el formato '1.123.678,99' y el devolviese '1123678.99', pero ahora el separador de miles '.' podría ser en ocasiones ',' y en otras ','. Y obviamente de manera inversa para el separador de decimales.var separador = '.'; var funcion1 = function(cadena) { var regex = '/^[\d\' + separador +']*$/i'; return regex.test(cadena); }
El problema es que no sé como crear una cadena representativa que vaya concatenando los separadores, para luego transformarla en expresion regular. He tratado con new RegExp, pero no se donde me equivoco, ya que no me resulta.
Saludos, espero puedan orientarme.
P.D.: Obviamente la primera funcion está enfocada en controlar el formato de cadenas representativas de numeros enteros, y la segunda de decimales, sin embargo a mí NO me interesa que se controlen las posiciones de los separadores de miles.