开发聊天过程中,可能会用到 lua 过滤富文本的粗体 斜体 颜色的逻辑。比较简单直接看代码
---过滤富文本的Size
---@param text string
function StringUtil.filterRichTextSize(text)
local replaceText, number = string.gsub(text, "<size=[0-9]+>(.-)</size>", "%1")
if number > 0 then
return replaceText
else
return text
end
end
---过滤富文本的粗体
---@param text string
function StringUtil.filterRichTextBold(text)
local replaceText, number = string.gsub(text, "<b>(.-)</b>", "%1")
if number > 0 then
return replaceText
else
return text
end
end
---过滤富文本的颜色
---@param text string
function StringUtil.filterRichTextColor(text)
local replaceText, number = string.gsub(text, "<color=#[a-zA-Z0-9]+>(.-)</color>", "%1")
if number > 0 then
return replaceText
else
return text
end
end
---过滤富文本的斜体
---@param text string
function StringUtil.filterRichTextItalic(text)
local replaceText, number = string.gsub(text, "<i>(.-)</i>", "%1")
if number > 0 then
return replaceText
else
return text
end
end
---过滤文本前后的空格
---@param text string
function StringUtil.filterTextSpace(text)
local replaceText, number = string.gsub(text, "^%s*(.-)%s*$", "%1")
if number > 0 then
return replaceText
else
return text
end
end
---过滤文本中所有的空格
---@param text string
function StringUtil.filterAllTextSpace(text)
local replaceText, number = string.gsub(text, " ", "")
if number > 0 then
return replaceText
else
return text
end
end