Refactored rtrim and ltrim to use _whitespace_bytes table

This commit is contained in:
Alvaro Frias 2021-04-12 12:38:03 -03:00
parent 6042e3a705
commit dbadd9af83

View File

@ -216,31 +216,33 @@ function stringx.trim(s)
end end
function stringx.ltrim(s) function stringx.ltrim(s)
if s == "" or s == string.rep(" ", s:len()) then return "" end if s == "" or s == string.rep(" ", s:len()) then
return ""
local head = 1 end
for i = 1, #s do
local c = s:sub(i, i)
if c ~= " " then
head = i
break
end
end
return s:sub(head)
local head = 1
for i = 1, #s do
if not _whitespace_bytes[s:byte(i)] then
head = i
break
end
end
return s:sub(head)
end end
function stringx.rtrim(s) function stringx.rtrim(s)
if s == "" or s == string.rep(" ", s:len()) then return "" end if s == "" or s == string.rep(" ", s:len()) then
return ""
local tail = #s
for i=#s, 1 do
local c = s:sub(i, i)
if c ~= " " then
tail = i
break
end
end end
local tail = #s
for i = #s, 1, -1 do
if not _whitespace_bytes[s:byte(i)] then
tail = i
break
end
end
return s:sub(1, tail) return s:sub(1, tail)
end end