<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rando &#187; trim</title>
	<atom:link href="http://rando.ramonasoft.com/tag/trim/feed/" rel="self" type="application/rss+xml" />
	<link>http://rando.ramonasoft.com</link>
	<description>a.k.a. master_of_puppetz@cristalab!!!</description>
	<lastBuildDate>Wed, 08 Sep 2010 13:50:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Extendiendo el uso del trim() en AS3</title>
		<link>http://rando.ramonasoft.com/2010/01/07/extendiendo-el-uso-del-trim-en-as3/</link>
		<comments>http://rando.ramonasoft.com/2010/01/07/extendiendo-el-uso-del-trim-en-as3/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 03:01:22 +0000</pubDate>
		<dc:creator>rando</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[StringUtils]]></category>
		<category><![CDATA[trim]]></category>

		<guid isPermaLink="false">http://rando.ramonasoft.com/?p=43</guid>
		<description><![CDATA[Como ya tenía harto, harto tiempo de no publicar un tip de Flex en el blog, hoy es momento de regresar a eso. Bien, en este tip mostraré como podemos hacer funcionar el trim() de AS3 como el trim() de PHP, la diferencia entre estos dos métodos, es que con el de PHP no solo [...]]]></description>
			<content:encoded><![CDATA[<p>Como ya tenía harto, harto tiempo de no publicar un tip de Flex en el blog, hoy es momento de regresar a eso.</p>
<p>Bien, en este tip mostraré como podemos hacer funcionar el <a href="http://livedocs.adobe.com/flex/3/langref/mx/utils/StringUtil.html" target="_blank">trim()</a> de AS3 como el <a href="http://php.net/manual/en/function.trim.php" target="_blank">trim()</a> de <a href="http://www.php.net" target="_blank">PHP</a>, la diferencia entre estos dos métodos, es que con el de PHP no solo podemos eliminar espacios en blanco la inicio y final de la cadena, sino que podemos definir caracteres que también sean eliminados.</p>
<p>La implementación de este trim() para AS3 fué tomada en base a la clase <a href="http://www.gskinner.com/blog/archives/2007/04/free_extension.html" target="_blank">StringUtils</a> del blog <a href="http://www.gskinner.com/" target="_blank">gskinner</a>.</p>
<p>el método original es el siguiente:</p>
<pre>public static function trim(p_string:String):String {
   if (p_string == null) { return ''; }
   return p_string.replace(/^\s+|\s+$/g, '');
}</pre>
<p>aquí la magia esta en la línea del <em>return</em>, donde le indica al método que regrese lo que reemplace de la cadena según la expresión regular que esta definiendo, lo que hace que elimine los espacios es el caracter <em>\s</em> por lo que este caracter es el que tenemos que sustituir en nuestro nuevo método, además de que tenemos que agregar otro parámetro para definir cual será el caracter a reemplazar, ya modificado el método nos quedaría algo así:</p>
<pre>public static function trimChar(p_string:String, p_char:String = ' '):String
{
   if (!p_string)
   {
      return '';
   }
   var regexp:RegExp = new RegExp("^" + p_char + "+|" + p_char + "+$", "g");
   return p_string.replace(regexp, '');
}</pre>
<p>suponiendo que el método se agregue a una clase llamada <em>StringUtils</em>, la utilización de esta clase sería:</p>
<pre>var foo:String = "   lDaniel Daniel   ";
trace(StringUtils.trimChar(foo)); //lDaniel Daniel
trace(StringUtils.trimChar(StringUtils.trimChar(foo), "l")); //Daniel Danie</pre>
<p>este método es para eliminar de ambos lados de la cadena, si solo se quisiera eliminar de un solo lado, se reemplaza el valor de la variable regexp según sea necesario o bien, se crean dos métodos nuevos cada uno con cada definición de la variable:</p>
<pre>//para hacer un trim de lado izquierdo
var regexp:RegExp = new RegExp("^" + p_char + "+", "g");
//para hacer un trim de lado derecho
var regexp:RegExp = new RegExp(p_char + "+$", "g");</pre>
<p>Espero que les sirva, Saludos!</p>
]]></content:encoded>
			<wfw:commentRss>http://rando.ramonasoft.com/2010/01/07/extendiendo-el-uso-del-trim-en-as3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
