• 欢迎来到THBWiki!如果您是第一次来到这里,请点击右上角注册一个帐户
  • 有任何意见、建议、求助、反馈都可以在 讨论板 提出
  • THBWiki以专业性和准确性为目标,如果你发现了任何确定的错误或疏漏,可在登录后直接进行改正

模块:libstr

来自THBWiki
跳到导航 跳到搜索
[创建] Template-info.svg 模块文档
local libstr = {}

function libstr.sub(str)
    str = mw.text.unstrip(str)
    str = mw.text.trim(str)
    return str
end

function libstr.join(list,rep)
	if rep == nil then
		rep = ','
	end
	local result = ''
    for i=1,#list do
    	result = result .. list[i]
    	if i ~= #list then
    		result = result .. rep
    	end
    end
    return result
end

function libstr.strip(str)
    str = mw.text.unstrip(str)
    str = mw.text.trim(str)
    return str
end

function libstr.split(str, reps)
    local resultStrList = {}
    mw.ustring.gsub(str,'[^'..reps..']+',function (w)
        table.insert(resultStrList,w)
    end)
    return resultStrList
end

local function getChar(char, default)
    if char == nil then return default end
    local charStr = tostring(char)
    if mw.ustring.len(charStr) < 1 then return default end
    return mw.ustring.sub(charStr, 1, 1)
end

function libstr.padLeft(str, len, char)
    if len == nil then
        return str
    end
    len = tonumber(len)
    local currentLen = mw.ustring.len(str)
    if currentLen >= len then return str end

    local default = type(tonumber(str)) == "number" and '0' or ' '
    char = char or default

    local remainLen = len - currentLen
    local times = math.floor(remainLen / mw.ustring.len(char)) + 1

    local newStr = mw.ustring.rep(char, times)
    local newLen = mw.ustring.len(newStr)
    local newSub = mw.ustring.sub(newStr, 1, remainLen-newLen-1)
    return newSub .. str
end

function libstr.padRight(str, len, char)
    if len == nil then
        return str
    end
    len = tonumber(len)
    local currentLen = mw.ustring.len(str)
    if currentLen >= len then return str end

    local default = type(tonumber(str)) == "number" and '0' or ' '
    char = char or default

    local remainLen = len - currentLen
    local times = math.floor(remainLen / mw.ustring.len(char)) + 1
    
    str = str .. mw.ustring.rep(char, times)
    return mw.ustring.sub(str, 1, len)
end

return libstr