Good call Michael!  I have my own function (I bet many do) this is a
great addition!

- Daniel

On May 14, 4:51 pm, Michael Fuery <mfu...@gmail.com> wrote:
> http://fuerysolutions.com/2009/05/14/why-doesnt-mootools-have-a-strin...
>
> I need a quick way to truncate strings!  I’m surprised that neither
> MooTools’ String.js or String.Extras.js has such a method.  They have
> so many super-awesome functions, methods and extensions (I especially
> love the Date.js extensions!!).  Yeah, I really love mootools, and I
> feel compelled to share with the community.  So anyway, I wrote out a
> simple, straightforward String.truncate() function.
>
> Comments, suggestions, corrections and extensions are always welcomed!
>
> <pre lang="javascript" line="1">
> String.implement({
>     /**
>      * String.truncate(max, atChar, trail)
>      *
>      * ++All parameters are optional.
>      * @param max = (integer) maximum length of truncated string.
> Defaults to 100 chars.
>      * @param atChar = (string) truncate at the last index of this
> string. If not found, just truncates to max length.
>      *                 If null, does not search and truncates to max
> length.
>      * @param trail = (string) what you want appended to the end of
> the returned string
>      *
>      * @author Michael Fuery, Fuery Solutions, 
> Inc.http://www.fuerysolutions.com/
>      *
>      * +Requires MooTools Core 1.2.2
>      */
>     truncate:function(max, atChar, trail){
>         var s = this.trim();
>         if(s.length<1) return '';
>         if(!$defined(max)) var max = 100;
>         else max = max.toInt();
>         if(!$defined(atChar)) var atChar=' '; // break at space
>         else if(atChar == null) var atChar=false;
>         if(!$defined(trail)) var trail = '...';
>
>         if(s.length > max) {
>             var i=0;
>             if(atChar){
>                 if((i = s.lastIndexOf(atChar)) != -1){
>                     s = s.substring(0, i);
>                 }else{
>                     s = s.substring(0, max);
>                 }
>             }
>
>             s += trail;
>         }
>
>         return s;
>     }});
>
> </pre>

Reply via email to