Обговорення модуля:String: відмінності між версіями
Найсвіжіший коментар: Sasha1024 3 роки тому
Вилучено вміст Додано вміст
Немає опису редагування Мітка: редагування коду 2017 |
мНемає опису редагування Мітка: редагування коду 2017 |
||
Рядок 27: | Рядок 27: | ||
for i = 1, limit do |
for i = 1, limit do |
||
delimiterStart, delimiterEnd = string.find(source, delimiter, delimiterEnd + 1, true) |
delimiterStart, delimiterEnd = string.find(source, delimiter, delimiterEnd + 1, true) |
||
if delimiterStart |
if not delimiterStart then delimiterStart, delimiterEnd = #source + 1, #source end |
||
end |
end |
||
end |
end |
Версія за 17:42, 29 жовтня 2020
Andriy.v, Ви можете, будь ласка, або додати цю функцію:
--[[
explode
Should act as described in https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions##explode
Usage:
{{#invoke:String|explode|string|delimiter|position|limit}}
]]
function str.explode(frame)
local source = frame.args.string or frame.args[1]
if not source then error('The "string" parameter is not specified') end
local delimiter = frame.args.delimiter or frame.args[2]
if not delimiter then error('The "delimiter" parameter is not specified') end
local position = frame.args.position or frame.args[3] or 0
local limit = frame.args.limit or frame.args[4] or 1
local startIndex = 1
for i = 1, position do
local delimiterEnd = select(2, string.find(source, delimiter, startIndex, true))
startIndex = (delimiterEnd or #source) + 1
end
local delimiterStart = startIndex
do
local delimiterEnd = delimiterStart - 1
for i = 1, limit do
delimiterStart, delimiterEnd = string.find(source, delimiter, delimiterEnd + 1, true)
if not delimiterStart then delimiterStart, delimiterEnd = #source + 1, #source end
end
end
return string.sub(source, startIndex, delimiterStart - 1)
end
або увімкнути $wgPFEnableStringFunctions? Sasha1024 (обговорення) 17:38, 29 жовтня 2020 (UTC)