Foros del Web » Programando para Internet » Javascript » Frameworks JS »

dudas expresion regular

Estas en el tema de dudas expresion regular en el foro de Frameworks JS en Foros del Web. hola a todos estoy haciendo un validador para un input text y estoy tratando de hacer la expresion con jquery mi codigo Código: <script type="text/javascript"> ...
  #1 (permalink)  
Antiguo 30/05/2012, 14:14
Avatar de saseisa  
Fecha de Ingreso: agosto-2006
Mensajes: 329
Antigüedad: 17 años, 8 meses
Puntos: 9
Pregunta dudas expresion regular

hola a todos estoy haciendo un validador para un input text y estoy tratando de hacer la expresion con jquery

mi codigo
Código:
<script type="text/javascript">
	$('#username').keyup(function() {
    
	$('span.error').remove();
    
	var cadena = $(this).val();
	
   var expresion = /^[A-Z,a-z,ñ,Ñ,&]{1,3}[A-Z,a-z,ñ,Ñ,&,0-9]$/;
   
    if(!expresion.test(cadena)) {
        $(this).after('<span class="error">Error .</span>');
			
    }
});
</script>
como pueden ver pongo una etiqueta de error si la cadena que van introduciendo no es correcta.

cuando agrego el primer caracter me marca error segundo caracter error, tercer caracter y error hasta que pongo el cuarto caracter o digito se borra la etiqueta de error, no veo por donde este el error espero puedan ayudarme

desde ya gracias
  #2 (permalink)  
Antiguo 30/05/2012, 15:44
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: dudas expresion regular

quita a la expresión las comas y puedes que logres lo que pretendes

te recomiendo este tutorial para empezar
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 30/05/2012, 15:47
Avatar de saseisa  
Fecha de Ingreso: agosto-2006
Mensajes: 329
Antigüedad: 17 años, 8 meses
Puntos: 9
Respuesta: dudas expresion regular

gracias IsaBelM ya intente sin comas con parentesis la expresion pero no ni con eso me da
  #4 (permalink)  
Antiguo 30/05/2012, 16:13
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: dudas expresion regular

prueba con esta
Cita:
/^([a-z\xc0-\xff&]){1,3}([\da-z\xc0-\xff&])$/
y hazte un favor y lee el tutorial que te dejé
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #5 (permalink)  
Antiguo 30/05/2012, 17:52
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: dudas expresion regular

Cita:
Iniciado por saseisa Ver Mensaje
gracias IsaBelM ya intente sin comas con parentesis la expresion pero no ni con eso me da
Podemos saber que querés validar exactamente, corregida la sintáxis, lo lógico sería saber cual es el objetivo a lograr. Debido a la hfalta de ese dato,a partir de aqui adivino

tenes esto

var expresion = /^[A-Z,a-z,ñ,Ñ,&]{1,3}[A-Z,a-z,ñ,Ñ,&,0-9]$/;
vamos a hacerle algunas correciones e ir por partes

Código Javascript:
Ver original
  1. var expresion = /^[a-zA-Z9\u00C0-\u00ff-\&]+$/
esa expresión admite 'a' a la 'z' mayusculas minúsculas ñÑ, acentos diérecis... e '&' en cualquier cantidad
ahora
Código Javascript:
Ver original
  1. var expresion = /^[a-zA-Z9\u00C0-\u00ff-\&]{1,3}$/
es decir, lo anterior pero limitando entre 1 y 3 caracteres, al 4º genera error
y que pasa con
Código Javascript:
Ver original
  1. var expresion = /^[a-zA-Z9\u00C0-\u00ff-\&]{1,3}[a-zA-Z0-9\u00C0-\u00ff-\&]+$/
le agregamos una segubda parte, pero que también admite numeros

entonces
tipeo un caracter --> ERROR, ya que estas cumpliendo con la primera parte, hay entre 1 y 3 caracteres permitidos, pero no tenes ningún caracter que cumpla con la segunda.

Pero esto es teoría, desde el punto de vista práctico, no se me ocurre ninguna validación que se ajuste a ese patrón, y menos si lo asocio con un username (decididamente yo eliminaría tildes, Ñ y demas, más aún si van a ir a unabase de datos), bueno... dije que estaba adivinando

Para finalizar, como estas validando conta el uso del teclado, esto sería más adecuado

Código Javascript:
Ver original
  1. var expresion = /^[a-zA-Z9\u00C0-\u00ff-\&]{1,3}[a-zA-Z0-9\u00C0-\u00ff-\&]+$/
  2. if(cadena != ""){
  3.     if(!expresion.test(cadena)) {
  4.     $(this).after('<span class="error">Error .</span>');
  5.     }else{
  6.     $(this).after('<span class="error">Correcto</span>');
  7.     }
  8. }else{
  9. $(this).after('<span class="error"></span>');
  10. }


Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #6 (permalink)  
Antiguo 31/05/2012, 07:27
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: dudas expresion regular

Cita:
/^[a-zA-Z9\u00C0-\u00ff-\&]{1,3}[a-zA-Z0-9\u00C0-\u00ff-\&]+$/
ya que no le has dado oportunidad de investigar por sí mismo, vayamos por parte

sobra
Cita:
[a-zA-Z9\
al final usaremos el modificador
Cita:
/^[a-z\u00C0-\u00ff-\&]
"&" no es una caracter especial y tampoco entra en rango
Cita:
/^[a-z\u00C0-\u00ff&]
mejor con agrupamiento ([a-z\u00C0-\u00ff&]) si se usa un cuantificador

la "ñ" es el único caracter especial que quiere

etc...

saseisa, prueba tu código con esta expesión
Cita:
/^([a-z\xf1&]){1,3}([a-z\d\xf1&]?)$/i
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #7 (permalink)  
Antiguo 31/05/2012, 11:36
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: dudas expresion regular

@isabelM
Si es cierto, me sobró el
[a-zA-Z9\
la exresion queda
Código Javascript:
Ver original
  1. /^[a-zA-Z\u00C0-\u00ff-\&]{1,3}[a-zA-Z0-9\u00C0-\u00ff-\&]+$/

que uses el modificador /i no invalida que yo use a-zA-Z, & no es un caracter especial es cuerto, escaparlo no es necesario, pero el hacerlo tampoco afecta el resultado

En definitiva, tu expresión es tan correcta ó NO, como la mía ya que la usuaria (o el usuario) sigue sin especificar su objetivo, con tu propuesta

a --> correcto
aa -- >correcto
aaaaa --> incorrecto
aE45 --> incorrecto

será eso lo que quiere @saseisa?

Yo no recomendaría nada más hasta que se defina

__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 31/05/2012 a las 11:41

Etiquetas: dudas, expresion, input, jquery, regular
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 04:30.