Foros del Web » Programando para Internet » Javascript »

regular expression con JavaScript

Estas en el tema de regular expression con JavaScript en el foro de Javascript en Foros del Web. Tengo un TextBox que debe aceptar solo lo siguiente: "Format = N/A, I-10, US XX, SR XX, CR XXXX" Donde las X representan cualquier número ...
  #1 (permalink)  
Antiguo 07/04/2008, 13:05
Avatar de AlaDelta  
Fecha de Ingreso: febrero-2008
Ubicación: Argentina
Mensajes: 56
Antigüedad: 16 años, 2 meses
Puntos: 0
regular expression con JavaScript

Tengo un TextBox que debe aceptar solo lo siguiente:

"Format = N/A, I-10, US XX, SR XX, CR XXXX"
Donde las X representan cualquier número entero.

El tema es que yo tenía esto, que andaba perfecto,

function validName(sender, args)
{
var regex1 = /^US \d{2}$/;
var regex2 = /^SR \d{2}$/;
var regex3 = /^CR \d{4}$/;

if ( args.Value == "N/A" || args.Value == "I-10" || args.Value.search(regex1) != -1 || args.Value.search(regex2) != -1 || args.Value.search(regex3) != -1)
{
args.IsValid = true;
}
else
{
args.IsValid = false;
}
}

y un customValidator...

Pero necesito que las opciones puedan ser intersecciones de dos o tres,
por ejemplo:
N/A / I-10 / US 43
ó
US 72 / SR 21

Sé entiende?

Pido una mano con esto, porque ya nosé que hacer, probé con arreglos, pero me complican cuando puede ser cualquier numero...

Espero respuesta!!!

Graciasssssssssssssssss

  #2 (permalink)  
Antiguo 08/04/2008, 00:44
Avatar de marcopoloaz06  
Fecha de Ingreso: julio-2007
Ubicación: México
Mensajes: 457
Antigüedad: 16 años, 9 meses
Puntos: 11
Re: regular expression con JavaScript

Hola, bueno pues aver si estoy bien si no me dices
Código HTML:
var t1="N/A / I-10 / US 43";
var t2="US 72 / SR 21";

var exp=/(N\/A \/ I\-\d{2} \/ (US \d{2})|\2 \/ SR \d{2})/;

alert( exp.test(t2) );
Bueno adios
:]
__________________
Aerolíneas Alicia :D
  #3 (permalink)  
Antiguo 08/04/2008, 09:03
Avatar de AlaDelta  
Fecha de Ingreso: febrero-2008
Ubicación: Argentina
Mensajes: 56
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: regular expression con JavaScript

Gracias!!! lo pude resolver...
Ya que me ayudaron les paso como lo hice:

Esto machea por ejemplo con N/A / SR 02 / US 23
Que era lo que necesitaba!
Que me valide las intersecciones.
Seguramente se puede hacer una regular expression grande con todos los casos, pero no me resultó intuitivo...


var regex1 = /^US \d{2}$/;
var regex2 = /^SR \d{2}$/;
var regex3 = /^CR \d{4}$/;
var regex4 = /^N\/A$/;
var regex5 = /^I-10$/;

var regexArray = new Array();
regexArray[0] = regex4;
regexArray[1] = regex5;
regexArray[2] = regex1;
regexArray[3] = regex2;
regexArray[4] = regex3;

function validName(sender, args) {
streets = args.Value.split(" / ");
valid = true;
for (i = 0; i < streets.length; i++) {
valid = valid && validStreet(streets[i]);
}
args.IsValid = valid;
}

function validStreet(stringSplit)
{
valid = false;
for (x=0;x<regexArray.length;x++)
{
valid = valid || regexArray[x].test(stringSplit);
}
return valid;
}


Espero les sirva!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 07:07.