Foros del Web » Programando para Internet » Javascript »

Ayudita con expresion regular

Estas en el tema de Ayudita con expresion regular en el foro de Javascript en Foros del Web. Hola a todos, He probado bastantes expresiones, pero no doy con la correcta, siempre me saltan errores. Estoy intentando personalizar esta funcion: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 02/05/2012, 22:52
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 7 meses
Puntos: 19
Ayudita con expresion regular

Hola a todos,

He probado bastantes expresiones, pero no doy con la correcta, siempre me saltan errores.

Estoy intentando personalizar esta funcion:

Código Javascript:
Ver original
  1. function _get(searchClass,node,tag)
  2.         {
  3.             var classElements = new Array();
  4.             if ( node == null )
  5.                     node = document;
  6.             if ( tag == null )
  7.                     tag = '*';
  8.             var els = node.getElementsByTagName(tag);
  9.             var elsLen = els.length;
  10.             if(searchClass)
  11.                 {
  12.                     var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
  13.                     for (i = 0, j = 0; i < elsLen; i++) {
  14.                             if ( pattern.test(els[i].className) ) {
  15.                                     classElements[j] = els[i];
  16.                                     j++;
  17.                             }
  18.                     }
  19.                 }
  20.             else classElements=els;
  21.             return classElements;
  22.         }

El problema lo tengo con:

Código Javascript:
Ver original
  1. var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
Ahora lo que hace es obtener los elementos de una determinada clase, eso lo hace de maravilla. Lo que busco es que tambien obtenga los elementos que tengan esa clase + un parentesis. Es decir, que si digo que obtenga los elementos de la clase "micoche" tambien obtenga los elementos de "micoche(".

¿Es posible?, he intentado incluir "\(", pero me salta el error "unterminated parenthetical". He buscando por google expresiones, pero no doy con ella.

¿Alguien me hecha una mano?, es que esto de las expresiones siempre me ha dejado k.o.

:P
  #2 (permalink)  
Antiguo 03/05/2012, 00:01
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, 6 meses
Puntos: 1485
Respuesta: Ayudita con expresion regular

buenas.
mas o menos lo tienes bien. la barra invertida dentro de un string se utiliza para neutralizar (escapar) el próximo caracter. por tanto, cuando el string le llega a RegExp, en realidad no esta viendo el string "\(", sino "(" porque en ese punto el string ya está neutralizado. lo que tienes que hacer es incluir una barra invertida neutralizada para que el string lo tome como literal y luego RegExp lo analice como literal también. o sea, tienes que escribir un doble backslash \\.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 03/05/2012, 06:14
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 7 meses
Puntos: 19
Respuesta: Ayudita con expresion regular

Hola zerokilled,

De lux la informacion, me ha servidor perfectamente. El problema es que ahora soy mas ambicioso.

¿Se podria capturar esta información con una expresion regular?

cadena: "me llamo pedro picapiedra(el grandote) y no me gusta pablo(el pequeño)"
resultado: "el grandote"

Se podria sacar esa información sabiendo que esta detras de "picapiedra(xxxxxxx)"?.

Voy a investigar ejemplos a punta pala a ver si lo saco, pero si alguien me hecha una mano se lo agradecere, se que es pedir demasiado, pero es que esto de las expresiones regulares... bufff... que lio.

:D
  #4 (permalink)  
Antiguo 03/05/2012, 06:47
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 7 meses
Puntos: 19
Respuesta: Ayudita con expresion regular

Urra!!!... ya se como se hace... asi que tranquilos!... :D... es usando split y RegExp, ahora tengo que darle vueltas... a ver que sale.

Muchas gracias!.

Etiquetas: expresion, funcion, 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 10:44.