I did just a couple of tests, and this seems to be the most compact and fast
in any case.

function myBestTrim( str ){
    var start = -1, end = str.length;
    while(str.charCodeAt( --end ) < 33);
    while(str.charCodeAt( ++start ) < 33);
    return str.slice( start, end + 1 );
};

There is probably one case where it does not perform faster, length 1 or 0,
but we are talking abut 1 to 5 miliseconds in both cases, and about "0" with
new browsers possibilities.

2 proposals:

trim: function( text ) {
        var str = text || "", start = -1, end = str.length;
        while(str.charCodeAt( --end ) < 33);
        while(str.charCodeAt( ++start ) < 33);
        return str.slice( start, end + 1 );
    },

    trim: function( text ) {
        if(text){
            var start = -1, end = text.length;
            while( text.charCodeAt( --end ) < 33 );
            while( text.charCodeAt( ++start ) < 33 );
            return text.slice( start, end + 1 );
        };
        return "";
    },

Regards

On Tue, Nov 4, 2008 at 10:14 PM, Andrea Giammarchi <
[EMAIL PROTECTED]> wrote:

> Cheers :-)
>
>
> On Tue, Nov 4, 2008 at 10:11 PM, Ariel Flesler <[EMAIL PROTECTED]> wrote:
>
>>
>> Will benchmark all this.
>>
>> On Tue, Nov 4, 2008 at 7:10 PM, Andrea Giammarchi
>> <[EMAIL PROTECTED]> wrote:
>> > But in this case you are checking twice for each character, start less
>> than
>> > end plus the other check.
>> > For small strings the best option culd be return the regexp version
>> > /^\s+|\s+$/g while for strings with length more than N (dunno which
>> length
>> > is big enough) we can use my last proposal without problems, a charcode
>> > instead of start < end wont make the difference, IMO :-)
>> >
>> > On Tue, Nov 4, 2008 at 10:02 PM, Ariel Flesler <[EMAIL PROTECTED]>
>> wrote:
>> >>
>> >> That does, but will iterate doubly for strings made of spaces. That's
>> >> why I added the check.
>> >
>> >
>> > >
>> >
>>
>>
>>
>> --
>> Ariel Flesler
>> http://flesler.blogspot.com
>>
>> >>
>>
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to