Fair enough, 

I had submitted a plugin for trimming and other text based functions a while
back

http://plugins.jquery.com/project/text

 

it's similar to what you have come up with here, but not so tight - also I
think I over cooked it a bit J

I'll revise it with your ideas. If that's ok?

 

Also on a sort of other topic, is there a general consensus that jQuery does
not add prototype functions to standard objects such as String, where
trimming would ideally live.

 

Ant

 

From: jquery-dev@googlegroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of Andrea Giammarchi
Sent: 05 November 2008 11:22
To: jquery-dev@googlegroups.com
Subject: [jquery-dev] Re: Fast trim implementation

 

I suppose the most used, generaly speacking, is trim.
As you said, trim is the result of left and right trim but since what people
need is trim speed, I do not think is a good idea to create a trim function
that return trimstart(trimend(text)) so the code has to be a little bit
redundant, but trim performances will be preserved (avoiding two function
calls for each trim)

As sum, what do you think about this simple plugin?

;jQuery.extend({
    trimstart:function( text ){
        if( text ){
            var start = -1;
            while( text.charCodeAt( ++start ) < 33 );
            return text.substring( start );
        };
        return "";
    },
    trimend:function( text ){
        if( text ){
            var end = text.length;
            while( text.charCodeAt( --end ) < 33 );
            return text.substring( 0, end + 1 );
        };
        return "";
    }
});



On Wed, Nov 5, 2008 at 9:33 AM, Anthony Johnston
<[EMAIL PROTECTED]> wrote:

Could you split this so that we have trimstart and trimend?

 

Ant

 

From: jquery-dev@googlegroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of Andrea Giammarchi
Sent: 05 November 2008 09:03
To: jquery-dev@googlegroups.com
Subject: [jquery-dev] Re: Fast trim implementation

 

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 jquery-dev@googlegroups.com
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