Difference between revisions of "Module:StringHelpers"

From Data JW United
Jump to navigation Jump to search
 
(58 intermediate revisions by the same user not shown)
Line 2: Line 2:
  
 
function p.getParagraphFromQuestion(param)
 
function p.getParagraphFromQuestion(param)
return string.find(param.args[1], '-', 1, true)
+
dashIndex = string.find(param.args[1], '-', 1, true);
 +
if (dashIndex ~= nil)
 +
then
 +
if (dashIndex - 3 > 0 and tonumber(string.sub(param.args[1], dashIndex - 3, dashIndex -3)))
 +
then
 +
return string.sub(param.args[1], dashIndex - 3, dashIndex - 1);
 +
end
 +
if (tonumber(string.sub(param.args[1], dashIndex - 2, dashIndex -2)))
 +
then
 +
return string.sub(param.args[1], dashIndex - 2, dashIndex - 1);
 +
end
 +
if (tonumber(string.sub(param.args[1], dashIndex - 1, dashIndex -1)))
 +
then
 +
return string.sub(param.args[1], dashIndex - 1, dashIndex - 1);
 +
end
 +
else
 +
if (tonumber(string.sub(param.args[1], string.len(param.args[1]) - 2)))
 +
then
 +
i = string.len(param.args[1]) - 2;
 +
return string.sub(param.args[1], i)
 +
end
 +
if (tonumber(string.sub(param.args[1], string.len(param.args[1]) - 1)))
 +
then
 +
i = string.len(param.args[1]) - 1;
 +
return string.sub(param.args[1], i)
 +
else
 +
return string.sub(param.args[1], string.len(param.args[1]))
 +
end
 +
end
 
end
 
end
  
 
return p
 
return p

Latest revision as of 18:16, 12 April 2020

Module supports numbers with max 3 digits.

Tests

Simple question

Expected Actual
150 150
15 15
7 7
150 150
15 15
7 7

Complex question

Expected Actual
6 6
7 7
10 10
99 99
101 101
6 6
7 7
10 10
99 99
101 101

local p = {}

function p.getParagraphFromQuestion(param)
	dashIndex = string.find(param.args[1], '-', 1, true);
	if (dashIndex ~= nil) 
		then
			if (dashIndex - 3 > 0 and tonumber(string.sub(param.args[1], dashIndex - 3, dashIndex -3)))
				then
					return string.sub(param.args[1], dashIndex - 3, dashIndex - 1);
			end
			if (tonumber(string.sub(param.args[1], dashIndex - 2, dashIndex -2)))
				then
					return string.sub(param.args[1], dashIndex - 2, dashIndex - 1);
			end
			if (tonumber(string.sub(param.args[1], dashIndex - 1, dashIndex -1)))
				then
					return string.sub(param.args[1], dashIndex - 1, dashIndex - 1);
			end
		else
			if (tonumber(string.sub(param.args[1], string.len(param.args[1]) - 2)))
				then 
					i = string.len(param.args[1]) - 2;
					return string.sub(param.args[1], i)
				end
			if (tonumber(string.sub(param.args[1], string.len(param.args[1]) - 1)))
				then 
					i = string.len(param.args[1]) - 1;
					return string.sub(param.args[1], i)
			else 
				return string.sub(param.args[1], string.len(param.args[1]))
			end
	end
end

return p