Module:Str endswith: Difference between revisions

From Wiki.sg
Jump to navigation Jump to search
m (1 revision imported)
Module>MSGJ
(use Module:String per TfD discussion)
Line 1: Line 1:
-- This module implements {{str endswith}}.
{{#ifeq:{{{1|a}}}{{{2|a}}}|{{{1|b}}}{{{2|b}}}|{{#invoke:String|endswith|source={{{1}}}|pattern={{{2}}} }}|yes<!--backward compatibility -->}}<noinclude>
 
{{documentation}}
local TRUE_STRING = 'yes'
</noinclude>
local FALSE_STRING = ''
 
local p = {}
 
local function trim(s)
return s:match('^%s*(.-)%s*$')
end
 
function p.main(frame)
local args = frame:getParent().args
local s = args[1]
local pattern = args[2]
if not s or not pattern then
-- TRUE_STRING is not the natural choice here, but is needed for
-- backwards compatibility.
return TRUE_STRING
end
s = trim(s)
pattern = trim(pattern)
if pattern == '' then
-- All strings end with the empty string.
return TRUE_STRING
end
if mw.ustring.sub(s, 0 - mw.ustring.len(pattern), -1) == pattern then
return TRUE_STRING
else
return FALSE_STRING
end
end
 
return p

Revision as of 22:16, 30 May 2019

yes

Module documentation[create]