Difference between revisions of "Module:String"

From Amanita Research
Jump to navigation Jump to search
(have sub return more than one character (broken by ID 538979768))
(+ substr variant that takes a length instead of an ending position)
Line 7: Line 7:
 
function str.sub( frame )
 
function str.sub( frame )
 
     return mw.ustring.sub( frame.args.s, tonumber( frame.args.i ), tonumber( frame.args.j ) )
 
     return mw.ustring.sub( frame.args.s, tonumber( frame.args.i ), tonumber( frame.args.j ) )
 +
end
 +
 +
function str.sublength( frame )
 +
    local i = tonumber( frame.args.i ) or 1
 +
    local len = tonumber( frame.args.len )
 +
    return mw.ustring.sub( frame.args.s, i, len and ( i + len - 1 ) )
 
end
 
end
  

Revision as of 01:49, 21 February 2013

Documentation for this module may be created at Module:String/doc

local str = {}

function str.len( frame )
    return mw.ustring.len( frame.args.s )
end

function str.sub( frame )
    return mw.ustring.sub( frame.args.s, tonumber( frame.args.i ), tonumber( frame.args.j ) )
end

function str.sublength( frame )
    local i = tonumber( frame.args.i ) or 1
    local len = tonumber( frame.args.len )
    return mw.ustring.sub( frame.args.s, i, len and ( i + len - 1 ) )
end

function str.match( frame )
    return mw.ustring.match( frame.args.s, frame.args.pattern, tonumber( frame.args.i ) )
end

return str