Difference between revisions of "StringIsNum"
Zion Tristan (talk | contribs) m |
Zion Tristan (talk | contribs) m (Tidied code and added more comments) |
||
Line 9: | Line 9: | ||
// It will return TRUE if the entire string is an integer number (whole number). | // It will return TRUE if the entire string is an integer number (whole number). | ||
// It will return FALSE if the entire string is not an integer. Floating points, letters, symbols, and spaces will make it return FALSE. | // It will return FALSE if the entire string is not an integer. Floating points, letters, symbols, and spaces will make it return FALSE. | ||
integer StringIsNum(string input) { | integer StringIsNum(string input) { | ||
integer length = llStringLength(input); integer i; integer verify; | integer length = llStringLength(input); integer i; integer verify; | ||
Line 14: | Line 15: | ||
for(i = 0; i < length; i++) { | for(i = 0; i < length; i++) { | ||
string char = llGetSubString(input, i, i); | string char = llGetSubString(input, i, i); | ||
//Compare each character in the string. For long strings, this may take time, and consume memory. | |||
if(char == "0" || char == "1" || char == "2" || char == "3" || char == "4" || | if(char == "0" || char == "1" || char == "2" || char == "3" || char == "4" || | ||
char == "5" || char == "6" || char == "7" || char == "8" || char == "9") | char == "5" || char == "6" || char == "7" || char == "8" || char == "9") | ||
Line 26: | Line 29: | ||
return TRUE; | return TRUE; | ||
} | } | ||
//Below code is an example on how to use it. Since the returned value is a Boolean (0 or FALSE, 1 or TRUE) it can be used easily in if statements. | |||
default | default | ||
Line 36: | Line 41: | ||
listen(integer channel, string name, key id, string message) | listen(integer channel, string name, key id, string message) | ||
{ | { | ||
//Respond if the string is a number | |||
if(StringIsNum(message)) llOwnerSay(message + " consists of numbers only."); | if(StringIsNum(message)) llOwnerSay(message + " consists of numbers only."); | ||
//Respond if the string is NOT a number | |||
if(!StringIsNum(message)) llOwnerSay(message + " has other characters in it!"); | if(!StringIsNum(message)) llOwnerSay(message + " has other characters in it!"); | ||
} | } | ||
} | } | ||
</lsl> | </lsl> |
Revision as of 16:26, 1 April 2012
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Due to my need of wanting a nice clean function to test an input and check if it consists entirely of numbers, I decided to write one myself, and share with the community.
This snippet is a fully working User Made Function. It is designed to be inserted into existing scripts to check if an input consists entirely of numbers, and will reject inputs that contain letters or symbols.
<lsl> // This function returns TRUE or FALSE depending on if the input string consists entirely of numbers. // It will return TRUE if the entire string is an integer number (whole number). // It will return FALSE if the entire string is not an integer. Floating points, letters, symbols, and spaces will make it return FALSE.
integer StringIsNum(string input) {
integer length = llStringLength(input); integer i; integer verify; for(i = 0; i < length; i++) { string char = llGetSubString(input, i, i);
//Compare each character in the string. For long strings, this may take time, and consume memory. if(char == "0" || char == "1" || char == "2" || char == "3" || char == "4" || char == "5" || char == "6" || char == "7" || char == "8" || char == "9") //Do something. You can do whatever you like here, the variable is just a placeholder to keep the compiler happy. verify = TRUE; //Exit with FALSE at the first sign of a non numerical character else return FALSE; } //Exit with TRUE if all characters are a number return TRUE;
}
//Below code is an example on how to use it. Since the returned value is a Boolean (0 or FALSE, 1 or TRUE) it can be used easily in if statements.
default {
state_entry() { llListen(0, "", llGetOwner(), ""); }
listen(integer channel, string name, key id, string message) { //Respond if the string is a number if(StringIsNum(message)) llOwnerSay(message + " consists of numbers only.");
//Respond if the string is NOT a number if(!StringIsNum(message)) llOwnerSay(message + " has other characters in it!"); }
} </lsl>