LlStringTrim
From Second Life Wiki
| LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Tutorials |
Summary
Function: string llStringTrim( string src, integer type );| 330 | Function ID |
| 0.0 | Delay |
| 10.0 | Energy |
Returns a string that is src with leading and/or trailing white space (spaces, tabs, and line feeds) trimmed from it.
| • string | src | |||
| • integer | type | – | STRING_TRIM* flag(s) |
| Constant | Description | |
|---|---|---|
| STRING_TRIM_HEAD | 0x1 | Trims spaces off the beginning. |
| STRING_TRIM_TAIL | 0x2 | Trims spaces off the end. |
| STRING_TRIM | 0x3 | Trims spaces off the beginning and end. |
Examples
Whenever you are accepting unstructured input from a user -- whether via chat or via a notecard -- it is a good idea to always full trim it:
llStringTrim("User input", STRING_TRIM);
This example returns the number of leading and trailing spaces on a string (not particularly useful but shows how to use the function).
default { state_entry() { llListen(4, "", llGetOwner(), ""); } on_rez(integer a) { llResetScript(); } listen(integer chan, string name, key id, string msg) { //test for and remove wrapping single or double quotes if(~llSubStringIndex("'\"", llGetSubString(msg,0,0))) if(llGetSubString(msg,-1,-1) == llGetSubString(msg,0,0)) msg = llDeleteSubString(msg, -1, 0); //track the length integer length = llStringLength(msg); //trim msg (not necessary to store these to variables but makes reading easier) string trim_left = llStringTrim(msg, STRING_TRIM_HEAD); string trim_right = llStringTrim(msg, STRING_TRIM_TAIL); string trim = llStringTrim(msg, STRING_TRIM); //output the results llOwnerSay("Initial length = " + (string)length + "\nLeading Spaces = " + (string)(length - llStringLength(trim_left))+ "\nTrailing Spaces = " + (string)(length - llStringLength(trim_right))+ "\nTrimmed Message = \"" + trim + "\""); } }
Notes
Aside from spaces at the beginning and / or end, the actually string will be unaffected. This means too, though, that extraneous spaces within the string -- for instance, a mistaken double-space type -- will not be corrected.
The following will remove all double spaces and leading and trailing spaces.
llDumpList2String(llParseString2List(src, [" "], []), " "); //works but can use a large quantity of memory

