變更

增加 237 位元組 、 2022年7月11日 (一) 18:56
导入13个版本
行 434: 行 434:  
if ignore_null_flag == nil then ignore_null_flag = false end
 
if ignore_null_flag == nil then ignore_null_flag = false end
   −
mw.log(no_pattern_flag, ignore_null_flag);
   
length = mw.ustring.len(input_str)
 
length = mw.ustring.len(input_str)
 
--split函數起點
 
--split函數起點
行 456: 行 455:  
end
 
end
 
if separ_str_end < separ_str_begin then separ_str_end = separ_str_begin end
 
if separ_str_end < separ_str_begin then separ_str_end = separ_str_begin end
mw.log(separ_str_begin, separ_str_end, iterator)
   
finded_str = mw.ustring.sub(input_str, iterator, separ_str_begin - 1)
 
finded_str = mw.ustring.sub(input_str, iterator, separ_str_begin - 1)
 
if not(mw.text.trim(finded_str) == '' and ignore_null_flag) then
 
if not(mw.text.trim(finded_str) == '' and ignore_null_flag) then
 
result[i] = finded_str
 
result[i] = finded_str
mw.log("\"" .. result[i] .. "\"")
   
i = i + 1
 
i = i + 1
 
end
 
end
行 475: 行 472:  
end
 
end
 
return result;
 
return result;
 +
end
 +
 +
--[[
 +
join
 +
 +
Join all non empty arguments together; the first argument is the separator.
 +
Usage:
 +
{{#invoke:String|join|sep|one|two|three}}
 +
]]
 +
function str.join(frame)
 +
local args = {}
 +
local sep
 +
for _, v in ipairs( frame.args ) do
 +
if sep then
 +
if v ~= '' then
 +
table.insert(args, v)
 +
end
 +
else
 +
sep = v
 +
end
 +
end
 +
return table.concat( args, sep or '' )
 
end
 
end