Difference between revisions of "Template:Str endswith"
m (1 revision imported) |
m (Protected "Module:Str endswith": High-risk Lua module ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))) |
||
| (One intermediate revision by one other user not shown) | |||
| Line 1: | Line 1: | ||
| − | {{ | + | -- This module implements {{str endswith}}. |
| − | { | + | |
| − | + | local TRUE_STRING = 'yes' | |
| + | 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 07:15, 7 November 2016
Documentation for this module may be created at Module:Str endswith/doc
Script error: Lua error: Internal error: The interpreter exited with status 127.
-- This module implements {{str endswith}}.
local TRUE_STRING = 'yes'
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