Editar cadenas de texto utilizando expresiones regulares

Posted by admin | AS3,Avanzado,Trucos | Saturday 10 January 2009 1:26 pm

La clase String dispone de un método replace() que nos permite reemplazar parte del texto por otro. Esto nos puede resultar muy útil no solo para editar campos de texto grandes, si no para realizar simples acciones de programación.

Un ejemplo podría ser utilizar este método para saber el ID del botón que ejecutó una acción. Por ejemplo, tenemos una serie de botones con un nombre secuencial que todos ejecutan la misma acción, pero que debe pasar como parámetro el numero de la secuencia para ejecutar la acción de manera diferente.

Actionscript:
  1. boton1.addEventListener(MouseEvent.CLICK, onClickBoton);
  2. boton2.addEventListener(MouseEvent.CLICK, onClickBoton);
  3. boton3.addEventListener(MouseEvent.CLICK, onClickBoton);
  4. //etc..
  5.  
  6. function onClickBoton(e:Event):void
  7. {
  8. var id:uint = uint(e.target.name.replace(RegExp(/boton/), ""));
  9. trace("me clicó el botón numero " + id);
  10. }

Dando uso de las =http://www.cristalab.com/tips/expresiones-regulares-en-actionscript-3.-tip-1-c30867lexpresiones[/url] =http://www.cristalab.com/tips/expresiones-regulares-en-actionscript-3-tip-2-c30909lregulares[/url] se crea un patrón que le dice al método replace() que sustituya el texto "boton" del nombre del botón por nada, con lo que nos quedamos solo con el numero de la secuencia... A partir de ahi ejecutamos las acciones que queramos.

Otro ejemplo de uso práctico de método es editar partes de direcciones URL. Por ejemplo, tenemos una serie de archivos XML situados en diferentes carpetas con la misma estructura:

http://www.dominio.com/usuarios/1320/datos/archivo.xml

http://www.dominio.com/usuarios/1321/datos/archivo.xml

http://www.dominio.com/usuarios/1322/datos/archivo.xml

etc..

En este caso podríamos tener un URL genérica de acceso global definiendo que esa carpeta en concreto será variable:

Actionscript:
  1. private var _xmlURL:String = "http://www.dominio.com/usuarios/#id#/datos/archivo.xml"

Y para utilizar esta url, unicamente sustituiremos el nombre de la carpeta por la que necesitemos en cada llamada.

Actionscript:
  1. _urlRequest.url  = Global.getXmlURL().replace(RegExp(/#id#/), _id);

Espero les sea útil ;)

Post relacinonados:

  1. Busquedas de palabras en textos con expresiones regulares
  2. Ejecutar acciones actionscript en enlaces de texto con AS3
  3. Texto con scroll a dos columnas en Flash CS3
  4. ADM, aplicación AIR para editar archivos de configuración
  5. Texto con enlaces en Flash al estilo HTML

2 Comments »

  1. Comment by Daniel Rodriguez — 22 January, 2009 @ 12:27 pm

    Bastante interesante, gracias.

  2. Comment by isantos — 13 April, 2009 @ 4:39 pm

    muchas gracias por la info...

    apenas estaba sufriendo con algo parecido...

    saludos... ;)
    __________
    Necesitas una agenda para tus pacientes?
    Agenda Business Customer
    http : // www . ddsmedia . net

RSS feed for comments on this post. TrackBack URI

Leave a comment

Get Adobe Flash playerPlugin by wpburn.com wordpress themes