Foros del Web » Programando para Internet » Javascript »

Evaluar una Cadena con una Expresion Regular

Estas en el tema de Evaluar una Cadena con una Expresion Regular en el foro de Javascript en Foros del Web. hola amigos, tengo la siguiente funcion javascript function ValidaExpresionRegular(tipo, obj){ var Test_Nombres = /[[^a-zA-Z Ññ]+/ opc = true; if (tipo == 'nombre') { if(!Test_Nombres.test(obj)){ opc ...
  #1 (permalink)  
Antiguo 14/11/2008, 12:21
Avatar de tazzito  
Fecha de Ingreso: agosto-2006
Mensajes: 381
Antigüedad: 18 años, 3 meses
Puntos: 2
Evaluar una Cadena con una Expresion Regular

hola amigos,
tengo la siguiente funcion javascript


function ValidaExpresionRegular(tipo, obj){
var Test_Nombres = /[[^a-zA-Z Ññ]+/
opc = true;
if (tipo == 'nombre') {
if(!Test_Nombres.test(obj)){
opc = false;
}
else{
opc = true;
}
}
return opc;
}

mi problema se basa en que me funciona solo para evaluar el primer texto de la cadena, por ejemplo si pongo
/ <-- Error
s <--Bien
Ssssss/ <-- Bien
*sdfsdf <-- Bien

que debo hacer para que me evalue por caracter (toda la palabra) contra la expresion regular y no solo la primera letra.
  #2 (permalink)  
Antiguo 14/11/2008, 12:32
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Evaluar una Cadena con una Expresion Regular

Prueba con esta:
/^[a-zA-Z Ññ]+$/
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 17/11/2008, 07:36
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Evaluar una Cadena con una Expresion Regular

/[[^a-zA-Z Ññ]+/

Primero que nada, la sintaxis está mal. No me queda claro cómo se interpretará el doble [. Debería dar un error de sintaxis, pero no lo da.
Sin un patrón claro, los resultados son impredecibles.

Deberías quitar el doble [, y dejar uno solo. Haciendo eso, se comporta como se espera.
Pero cuidado: estás buscando caracteres que NO sean una letra, así que si se encuentran (la coincidencia es verdadera) deberías devolver falso.

También se ha colado un espacio entre la Z y la Ñ, fíjate si debe estar o no.

Código javascript:
Ver original
  1. function ValidaExpresionRegular(tipo, obj){
  2.     var Test_Nombres = /[^a-zA-Z Ññ]/;
  3.     var opc = true;
  4.  
  5.     if (tipo == 'nombre') {
  6.         opc = !Test_Nombres.test(obj);
  7.     }
  8.  
  9.     return opc;
  10. }

Intercambiando la posición de [ y de ^, y conservando el +, (lo que te muestra David el Grande), lo que le pedís es que haya "uno o más letras o espacios". Si esa es la intención, la línea 6 arriba debería ser
Código javascript:
Ver original
  1. opc = Test_Nombres.test(obj);
(y por supuesto, en la línea 2 deberías poner un patrón como el que te muestra David (hola )

Saludos.
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




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