Foros del Web » Programando para Internet » Javascript »

Expresiones regulares: solo caracteres alfanumericos

Estas en el tema de Expresiones regulares: solo caracteres alfanumericos en el foro de Javascript en Foros del Web. Hola compañeros tengo una duda con respecto a una expresion regular Necesito una que solo permita ingresar en un textbox caracteres alfanumericos, he leido en ...
  #1 (permalink)  
Antiguo 28/10/2010, 10:24
Avatar de zeudio  
Fecha de Ingreso: enero-2002
Mensajes: 314
Antigüedad: 22 años, 3 meses
Puntos: 4
Expresiones regulares: solo caracteres alfanumericos

Hola compañeros

tengo una duda con respecto a una expresion regular

Necesito una que solo permita ingresar en un textbox caracteres alfanumericos, he leido en varios lugares que usando esto se logra lo que deseo:

[A-Za-z0-9_]

ó

\w

El problema es que cuando le paso una cadena que contiene digamos un simbolo ">", la expresion regular solo funciona si pongo dicho simbolo al principio. Por ejemplo si le paso esta cadena: "esta es mi cadena<", me la pasa como válida!

cual es la forma correcta de hacerlo?

les pongo un fragmento del codigo para mayor referencia

Código:
	var vsExprReg = /[A-Za-z0-9_]/;

        if (!vsExprReg.test(pObjeto.value.toString())) {
            alert("No se cumplio con el patrón");
            return;
        }
Gracias por su atención
  #2 (permalink)  
Antiguo 28/10/2010, 11:06
Avatar de zeudio  
Fecha de Ingreso: enero-2002
Mensajes: 314
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: Expresiones regulares: solo caracteres alfanumericos

Listo señores, encontre la solución:

[^A-Za-z0-9] // cualquier carácter que no entre en ese rango
[A-Za-z0-9] // cualquier carácter que entre en ese rango

Lo que si me queda claro es que la información acerca de las expresiones regulares que se encuentra uno googleando es muy escasa y de mala calidad.

Alguien sabe de un buen tutorial?
  #3 (permalink)  
Antiguo 28/10/2010, 12:44
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Expresiones regulares: solo caracteres alfanumericos

¿Seguro que así te funciona? Yo diría que el problema no está en aceptar o no aceptar el juego de carácteres, sino en hacer que la expresión recorra el string de principio a fin con ^ y $. Prueba así:
Código Javascript:
Ver original
  1. var vsExprReg=/^[\w]+$/;
  2. if(!vsExprReg.test(pObjeto.value.toString())){
  3.  //...
  4. }
Por cierto, A-Za-z se puede abreviar como A-z (o a-Z).
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #4 (permalink)  
Antiguo 28/10/2010, 13:52
Avatar de zeudio  
Fecha de Ingreso: enero-2002
Mensajes: 314
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: Expresiones regulares: solo caracteres alfanumericos

_cronos2

mira que se aprende mas y mas sobre el tema!

una pregunta compañero, sabes en que codificacion funcionan los metodos de las expresiones regulares? ya que en los servidores de la oficina no me funciona, sin embargo en un html local funciona perfecto.

Digo que no funciona por que no respeta cuando hago esto para validar acentos y ñ's

/[^a-z0-9\sáéíóúñ.,_\-\&\/]/i;

gracias de nuevo
  #5 (permalink)  
Antiguo 28/10/2010, 14:11
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Expresiones regulares: solo caracteres alfanumericos

javascript trata los string en la codificacion utf16, independientemente de la codificacion del origen del string (html, xml, etc). fijate que el patron dice otra cosa, ahora dice buscar los caracteres que no sean los indicados dentro de los corchetes. es esa la expresion que quieres usar?
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #6 (permalink)  
Antiguo 28/10/2010, 14:32
Avatar de zeudio  
Fecha de Ingreso: enero-2002
Mensajes: 314
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: Expresiones regulares: solo caracteres alfanumericos

zerokilled

Entiendo lo que dices del patron, digamos que fuese alrevez y buscara que la cadena cumpla con dicho patron y no al contrario. Deberia ser algo asi no?:

/[a-z0-9\sáéíóúñ.,_\-\&\/]/i;

El problema es este, si paso una cadena con acentos o ñ no funciona adecuadamente, funciona perfecto con lestras y numeros, incluso con los caracteres que indico ahi (.,_\-\&\/)

que crees que sea?
  #7 (permalink)  
Antiguo 28/10/2010, 15:47
Avatar de zeudio  
Fecha de Ingreso: enero-2002
Mensajes: 314
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: Expresiones regulares: solo caracteres alfanumericos

Este es el fragmento de código que arme para validar cadenas alfanuméricas mas algunos otros caracteres que están permitidos. Lo curioso es que únicamente no funciona con los caracteres acentuados ni las ñ.

Código:
            var vsCadena = pObjeto.value.toString();

            var vsExprReg = /^[a-z0-9\sáéíóúñ.,_\-\&\/]+$/i;

            if (!vsExprReg.test(vsCadena)) {
                alert("Ha introducido caracteres Invalidos");
                return;
            }
Que puede estar mal?
  #8 (permalink)  
Antiguo 28/10/2010, 21:18
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Expresiones regulares: solo caracteres alfanumericos

pues deberia funcionarte, a mi me trabaja bien. ahora bien, analizando de nuevo el mensaje, creo ahora entender a que te referias con la codificacion. en mi mensaje anterior me referia a nivel del lenguaje, pero el documento como tal es otra cosa. la codificacion ha utilizar puede ser cualquiera que soporte los caracteres del latin. puede ser iso-8859-1, unicode (utf8 o utf16). tu problema debe ser una de dos: a) no estas indicando la codificacion correcta en el documento (javascript dentro de documento HTML), b) la codificacion el archivo js es distinta a la utilizada en el documento html que carga. el primero se corrije enviando la codificacion en el encabezado HTTP o utilizando el elemento META CHARSET. el segundo caso se corrige indicando la codificacion en el atributo charset del elemento <script>.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: caracteres, expresiones, regulares
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 00:59.