Substr

Imp strsub. Returns a string starting from start to length characters from start (identical to the PHP function of the same name).

string = &lt;PREFIX&gt;_substr(string, start [, length])

Arguments

 * string : String - The subject string.
 * start : Integer - Start here. 0 and 1 have the same effect. Negative values are acceptable.
 * length : Integer - Go this many characters and stop. Negative values are acceptable.

Returns

 * string: The desired piece of the string. If the resulting string is less than 0 characters long (which can only exist in the Twilight Zone), false is returned.

Examples
string = &lt;PREFIX&gt;_substr("World of Warcraft", 2, 4) string = &lt;PREFIX&gt;_substr("World of Warcraft", -2, -4) string = &lt;PREFIX&gt;_substr("World of Warcraft", -2, 4) string = &lt;PREFIX&gt;_substr("World of Warcraft", -2, -1) string = &lt;PREFIX&gt;_substr("World of Warcraft", 4, -1)

Results
"orld" false -- error condition: the resulting string is negative in length and, therefore, cannot exist. "ft" "f" "ld of Warcraf"

Code
function &lt;PREFIX&gt;_substr(string, start, length) if not string then return '' end -- Sanity checks: make sure integers are integers. start = floor(tonumber(start)) or 1 if length == nil then length = strlen(string) end if length < 0 and start < 0 and abs(length) > abs(start) then return false end if start < 0 then start = strlen(string) + (start + 1) end length = floor(tonumber(length)) local String = '' if length >= 0 then String = strsub(string, start, (start - 1) + length) else String = string String = strsub(String, start) String = strsub(String, 1, strlen(String) + length) end return String end