Monday, November 08, 2010 at 12:06 AM.
system.verbs.builtins.string.trimWhiteSpace
on trimWhiteSpace (s) { <<Thursday, November 11, 1999 at 2:59:11 AM by AR <<Implemented as a kernel verb in Frontier 6.1. <<Old code <<on trimWhiteSpace (s) //old code <<Strip white space from the beginning and end of a string. <<White space is defined as spaces, tabs, carriage returns, and line feed characters. <<Wed, Aug 12, 1998 at 8:10:39 PM by PBS <<Change notes: <<Mon, Feb 22, 1999 at 10:56:50 AM by PBS <<Completely revised: the new version, submitted by Seth Dillingham, is significantly faster than the old version, up to twice as fast. <<http://docserver.userland.com/string/trimWhiteSpace <<Old code: <<on trimChar (ix) <<if sizeOf (s) == 0 <<return (false) <<case s [ix] <<' ' <<'\t' <<'\r' <<'\n' <<delete (s [ix]) <<return (true) <<return (false) <<loop //trim from the beginning of the string <<if not trimChar (1) <<break <<loop //trim from the end of the string <<if not trimChar (sizeOf (s)) <<break <<return (s) << <<local (i, ct = sizeOf (s), ixstart = 1, ixstop = ct ) <<local (whiteSpaceChars = " \r\t\n") //space, carriage return, tab, line feed << <<for i = 1 to ct //find the beginning on non-whitespace characters <<if (whiteSpaceChars contains s [i]) <<ixstart++ <<else <<break <<for i = ct downTo ixstart //find the end of non-whitespace characters <<if (whiteSpaceChars contains s [i]) <<ixstop-- <<else <<break << <<return (string.mid (s, ixstart, ixstop - ixstart + 1)) kernel (string.trimwhitespace)}
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.