Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/10/2011, 07:32
refreegrata
 
Fecha de Ingreso: agosto-2008
Mensajes: 198
Antigüedad: 15 años, 9 meses
Puntos: 27
duda al actualizar expresion regular

Hola lista, tengo una duda algo newbie. Tengo 2 funciones así:
Código:
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,'.');
}
Ambas funcionan. Ahora mis dudas:

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:
var separador = '.';
var funcion1 = function(cadena) {
   var regex = '/^[\d\' + separador +']*$/i';
   return regex.test(cadena);
}
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.

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.