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.
[as]
function trim(str:String):String {
for(var i=0; str.charCodeAt(i)<33; i++);
for(var j=str.length-1; str.charCodeAt(j)<33; j--);
return str.substring(i, j+1);
}
[/as]
Luego de ello podemos utilizar la función de forma sencilla, como se muestra a continuación.
[as]
var txt:String = " Hola trim!! ";
trace(trim(txt));
[/as]
trim en ActionScript 3
Ahora en el caso de ActionScript 3 se puede hacer uso de las expresiones regulares, esta función publicada en AStorm – Devblog busca como en el caso anterior los espacios en blanco y los elimina pero con una expresión regular.
[as]
function trim(str:String):String {
return str.replace(/^\s*(.*?)\s*$/g, «$1»);
}
[/as]
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
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+»«;
}
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+"";
}
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
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.
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!