Foros del Web » Programando para Internet » Javascript »

problemas al validar cadena de caracteres con todas sus consecuencias

Estas en el tema de problemas al validar cadena de caracteres con todas sus consecuencias en el foro de Javascript en Foros del Web. Hola amig@s. La verdad es que las expresiones regulares son una asignatura que siempre he tenido pendiente. Hace como un mesecillo estuve preguntando por aquí ...
  #1 (permalink)  
Antiguo 11/12/2009, 05:00
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
problemas al validar cadena de caracteres con todas sus consecuencias

Hola amig@s.

La verdad es que las expresiones regulares son una asignatura que siempre he tenido pendiente.
Hace como un mesecillo estuve preguntando por aquí cómo hacer una que me validase una cadena de caracteres alfabética y con espacios en blanco. Nada de caracteres especiales, sólo letras y espacios para nombre y apellidos.
Después de mucho googlear y tal encontré que ésta me funcionaba
Código:
patron = /[\W_0-9]/;
Luego si cadena.match(patron) entonces es que no está bien.
Pero ahora la estoy volviendo a utilizar y me he dado cuenta de que no admite acentos. Si pongo una palabra con algún caracter acentuado me hace true la expresión anterior.
Cómo podría decirle que me admitiese los caracteres acentuados??

Muchas gracias.
  #2 (permalink)  
Antiguo 11/12/2009, 07:03
 
Fecha de Ingreso: mayo-2006
Mensajes: 49
Antigüedad: 18 años
Puntos: 2
Respuesta: problemas al validar cadena de caracteres con todas sus consecuencias

puedes hacer una funcion simple en javascript. Algo así:

function isAlphanumeric(txt)
{
var ascii = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW XYZ0123456789";
var i=0;
for (i=0;i<txt.length;i++)
{
if (ascii.indexOf(txt.charAt(i))==-1) {
return false;
}
}
return true;
}


No la he probado, igual hay algún fallo.
Tampoco he incluido el caracter espacio como alfanumérico, pero puedes añadirlo tu en el string "ascii".
__________________
Diseño web Xatcom.net
  #3 (permalink)  
Antiguo 12/12/2009, 11:08
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: problemas al validar cadena de caracteres con todas sus consecuencias

Gracias carmarri por tu respuesta.
Pero io lo que pedía es una expresión regular para validar una cadena alfabética con caracteres acentuados y espacios en blanco. Concretando un poco más, una expresión para validar nombres y apellidos. Lo que tú me comentas ia lo sé hacer io, pero eso no es lo que me exigen. Tengo la que expuse en mi otro ost, pero esa me toma como false tanto los caracteres acentuados como la ñ, y no me sirve.
Mi pregunta es, cómo podría decirle a la expresión que tengo que me validase los caracteres que no me valida o qué nueva expresión se adecuaría a lo que necesito??

Gracias de nuevo.
  #4 (permalink)  
Antiguo 17/12/2009, 02:40
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: problemas al validar cadena de caracteres con todas sus consecuencias

Hola de nuevo amig@s.

Sólo quería decir que he podido conseguir lo que necesitaba después de mucho googlear y ver que las diferencias de lenguas no hacían posible tener expresiones para todo.

Como os decía, finalmente lo que he hecho es hacer un replace de los caracteres que no quería que me faiasen, y añadírselo a la función de validar cadena.
Finalmente la función queda de la siguiente manera:
Código:
function validaCadena(campo, cadena, label)
	{
		patron = /[\W_0-9]/;
		cadena = cadena.replace(/ /g, '');
		cadena = cadena.replace(/[áéíóúÁÉÍÓÚñ]/g, '');
		if(cadena != '')
		{
			if (cadena.match(patron))
			
			{
				document.getElementById(campo).value = "";
				document.getElementById(label).style.color='red';
				return (false);

			}

			else
			{
				document.getElementById(label).style.color= '#646464';
				return (true);
			}
		}
		else
		{
			document.getElementById(label).style.color= 'red';
			return (false);
		}
	};
Siendo la línea en rojo lo nuevo que le he añadido.
Con esto me sigue validando que no se inserten caracteres que no sean letras y me obvia los acentos y las ñ's para poder introducirlas a mi antojo.

Un saludo!!
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 07:37.