Fandom

WoWWiki

USERAPI substr

104,637pages on
this wiki
Add New Page
Talk0 Share

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

This page documents a user-defined function that you can copy and paste into your addon. Replace <PREFIX> with your AddOn's prefix to avoid conflicts between different versions of these functions.
User defined functions < substr

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

string = <PREFIX>_substr(string, start [, length])


Function Parameters Edit

Arguments Edit

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 Edit

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 Edit

string = <PREFIX>_substr("World of Warcraft", 2, 4)
string = <PREFIX>_substr("World of Warcraft", -2, -4)
string = <PREFIX>_substr("World of Warcraft", -2, 4)
string = <PREFIX>_substr("World of Warcraft", -2, -1)
string = <PREFIX>_substr("World of Warcraft", 4, -1)

ResultsEdit

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

CodeEdit

function <PREFIX>_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

Also on Fandom

Random Wiki