Notice: Firmware Links Under Maintenance We are currently undergoing maintenance on all firmware links. If any links are inaccessible, please email or contact Tech Support for the firmware. We appreciate your patience during the maintenance, thank you for your understanding.
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