trim en ActionScript

La función trim es una función muy común utilizada en la mayoría de lenguajes de programación la cual se encarga de eliminar los espacios en blanco al inicio y al final de una cadena. ActionScript por defecto no incluye esta función por lo cual tendremos que construirla manualmente.

La forma mas común de implementar esta función es crear dos funciones una para eliminar los espacios en blanco al inicio y otra al final de la cadena y luego unirlas, en esta ocasión les presento dos funciones preparadas para ser rápidas y eficientes.

trim en ActionScript 2.0

Es función fue creada por frog style web engineering con una serie de funciones adicionales. La función recorre los elementos desde el inicio y desde el fin eliminando los espacios en blanco, saltos de linea, tabuladores obteniéndose de esa forma la función trim.

  1. function trim(str:String):String {
  2.     for(var i=0; str.charCodeAt(i)<33; i++);
  3.     for(var j=str.length-1; str.charCodeAt(j)<33; j--);
  4.     return str.substring(i, j+1);
  5. }
  6. &#91;/as&#93;
  7.  
  8. Luego de ello podemos utilizar la función de forma sencilla, como se muestra a continuación.
  9.  
  10. &#91;as&#93;
  11. var txt:String = "    Hola trim!!  ";
  12. trace(trim(txt));
  13. &#91;/as&#93;
  14.  
  15. <strong>trim en ActionScript 3</strong>
  16. Ahora en el caso de <em>ActionScript 3</em> se puede hacer uso de las expresiones regulares, esta función publicada en <a href="http://www.astorm.ch/blog/index.php?post/2008/08/07/trim-en-AS3">AStorm - Devblog</a> busca como en el caso anterior los espacios en blanco y los elimina pero con una expresión regular.
  17.  
  18. [as]
  19. function trim(str:String):String {
  20.     return str.replace(/^\s*(.*?)\s*$/g, "$1");
  21. }

Nuevamente podemos hacer las pruebas y verificar que efectivamente tenemos nuestra función trim que elimina los espacios en blanco al inicio y al final de una cadena.

Comentarios Total 5 comentarios


uncle
Publicado: 15/12/2009 4:10 am

Hola, estoy cargando un RSS desde un texto dinámico de flash. Me gustaria saber como aplicar este “trim” a mi código, el qual creo que también es tuyo:

stop();
System.useCodepage = true;
var nInterval = setInterval(Play, 20000);

function Play() {
clearInterval(nInterval);
gotoAndPlay(_currentframe+1);
}

var rssurl:String = “http://es.catholic.net/rss/santoral.xml”;
//var rssurl:String = “unijimpe.xml”;
var rssxml:XML = new XML();
rssxml.ignoreWhite = true;
rssxml.load(rssurl);
rssxml.onLoad = function() {
var nodo:XMLNode = rssxml.firstChild.firstChild;

var vdes:String = “”;
var vcon:String = “”;

for (i=0; i<nodo.childNodes.length; i++) {
var snodo:XMLNode = nodo.childNodes[i];
switch (snodo.nodeName) {

case "description" :
vdes = snodo.firstChild.nodeValue;
break;
case "item" :
vcon = vcon+getContent(snodo);
break;
}

}
txttitle.htmlText = "“+vtit+”“;
txtdescription.text = vdes;
txtcontent.htmlText = vcon;
};

function getContent(vxml) {

var stit:String = “”;
var surl:String = “”;
var sdes:String = “”;
for (j=0; j<vxml.childNodes.length; j++) {
var sxml:XMLNode = vxml.childNodes[j];
switch (sxml.nodeName) {
case "title" :
vtit = sxml.firstChild.nodeValue;
break;
case "link" :
vurl = sxml.firstChild.nodeValue;
break;
case "description" :
vdes = sxml.firstChild.nodeValue;
break;
}
}
return "“+vtit+”“+vdes+”“;
}

uncle
Publicado: 15/12/2009 4:11 am


stop();
System.useCodepage = true;
var nInterval = setInterval(Play, 20000);

function Play() {
clearInterval(nInterval);
gotoAndPlay(_currentframe+1);
}

var rssurl:String = "http://es.catholic.net/rss/santoral.xml";
//var rssurl:String = "unijimpe.xml";
var rssxml:XML = new XML();
rssxml.ignoreWhite = true;
rssxml.load(rssurl);
rssxml.onLoad = function() {
var nodo:XMLNode = rssxml.firstChild.firstChild;

var vdes:String = "";
var vcon:String = "";

for (i=0; i<nodo.childNodes.length; i++) {
var snodo:XMLNode = nodo.childNodes[i];
switch (snodo.nodeName) {

case "description" :
vdes = snodo.firstChild.nodeValue;
break;
case "item" :
vcon = vcon+getContent(snodo);
break;
}

}
txttitle.htmlText = ""+vtit+"";
txtdescription.text = vdes;
txtcontent.htmlText = vcon;
};

function getContent(vxml) {

var stit:String = "";
var surl:String = "";
var sdes:String = "";
for (j=0; j<vxml.childNodes.length; j++) {
var sxml:XMLNode = vxml.childNodes[j];
switch (sxml.nodeName) {
case "title" :
vtit = sxml.firstChild.nodeValue;
break;
case "link" :
vurl = sxml.firstChild.nodeValue;
break;
case "description" :
vdes = sxml.firstChild.nodeValue;
break;
}
}
return ""+vtit+""+vdes+"";
}
stop();
System.useCodepage = true;
var nInterval = setInterval(Play, 20000);

function Play() {
clearInterval(nInterval);
gotoAndPlay(_currentframe+1);
}

var rssurl:String = "http://es.catholic.net/rss/santoral.xml";
//var rssurl:String = "unijimpe.xml";
var rssxml:XML = new XML();
rssxml.ignoreWhite = true;
rssxml.load(rssurl);
rssxml.onLoad = function() {
var nodo:XMLNode = rssxml.firstChild.firstChild;

var vdes:String = "";
var vcon:String = "";

for (i=0; i<nodo.childNodes.length; i++) {
var snodo:XMLNode = nodo.childNodes[i];
switch (snodo.nodeName) {

case "description" :
vdes = snodo.firstChild.nodeValue;
break;
case "item" :
vcon = vcon+getContent(snodo);
break;
}

}
txttitle.htmlText = ""+vtit+"";
txtdescription.text = vdes;
txtcontent.htmlText = vcon;
};

function getContent(vxml) {

var stit:String = "";
var surl:String = "";
var sdes:String = "";
for (j=0; j<vxml.childNodes.length; j++) {
var sxml:XMLNode = vxml.childNodes[j];
switch (sxml.nodeName) {
case "title" :
vtit = sxml.firstChild.nodeValue;
break;
case "link" :
vurl = sxml.firstChild.nodeValue;
break;
case "description" :
vdes = sxml.firstChild.nodeValue;
break;
}
}
return ""+vtit+""+vdes+"
";
}

uncle
Publicado: 15/12/2009 4:24 am

es el mismo código en todos los comentarios…se me quedaba colgado el ordenador y luego los ha pegado todos a la vez….sorry

JV
Publicado: 20/01/2010 8:21 am

Genial, muchas gracias! Me ha venido de perlas y no es la primera vez que este blog me saca de un apuro.

Tutor Dk
Publicado: 12/05/2010 5:25 am

Está bien la función que poneis, pero encontré algo que posiblemente le interese a más de uno para flex…

Trim en Flex

No hace falta inventar lo inventado! :)

Espero que os sirva, un saludo!

 

Comentar

En este blog los comentarios están moderados, serán mostrados cuando el administrador los apruebe. Por favor, evita comentarios ofensivos u obscenos por que no serán aprobados.
Si deseas publicar código fuente debes hacerlo entre las etiquedas <code> y </code>, además debes reemplazar los carácteres < por &lt; y > por &gt;.

(Requerido)

(Requerido, no será publicado)

(Requerido)

(Tags aceptados: <a> <em> <strong> <code> <ul> <li>)