Anthony for me it is fine but maybe you should ask to Ariel since the original idea and tricky code is his stuff :-)
On Wed, Nov 5, 2008 at 11:41 AM, Anthony Johnston < [EMAIL PROTECTED]> wrote: > 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:* [email protected] [mailto:[EMAIL PROTECTED] *On > Behalf Of *Andrea Giammarchi > *Sent:* 05 November 2008 11:22 > > *To:* [email protected] > *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:* [email protected] [mailto:[EMAIL PROTECTED] *On > Behalf Of *Andrea Giammarchi > *Sent:* 05 November 2008 09:03 > *To:* [email protected] > *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 [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 -~----------~----~----~----~------~----~------~--~---
