【发布时间】:2017-01-20 23:22:39
【问题描述】:
我正在尝试检查我的字符串中的所有字符是否都是以下数字之一:1,2,3,4,5,6,7,8,9,0 或小数点,以及它们是否是否包含空格。我正在使用这段代码,但它不起作用,我不知道为什么:
print("Confirming added item")
local validAmountString = true
print(addScreen.amountTxtField.text)
for i = 1, #addScreen.amountTxtField.text do
local c = addScreen.amountTxtField.text:sub(i,i)
print("Char " .. i .. " in the amount textflied is " .. c)
if c == "0" or c == "1" or c == "2" or c == "3" or c == "4" or c == "5" or c == "6" or c == "7" or c == "8" or c == "9" or c == "." then
validAmountString = true
else
validAmountString = false
end
print(validAmountString)
end
if string.gsub(addScreen.nameTxtField.text, "%s+", "") ~= "" and string.gsub(addScreen.amountTxtField.text, "%s+", "") ~= "" and validAmountString == true then
--Proceed...
end
空格部分正在工作,但由于某种原因,当我尝试在 if 语句中检查 validAmountString == true 时,它停止工作。根据我的打印语句,validAmountString 返回正确的布尔值。
有什么帮助吗? :)
【问题讨论】:
-
请提供输入字符串
-
我已经尝试了很多。这是用户填写的值。我的输入得到了正确的布尔值(即“200”将导致 true)。但即使它是真的,它也不会通过我的 if 语句。
-
所以您想查看字符串是否包含有效数字?如果这是您的实际问题,请编辑您的问题。
-
或小数点。我觉得我的问题对这个主题的内容有一个坚实的初步了解。检查字符串中的单个字符。
-
The XY problem。您在询问字符串是否仅包含数字或小数点。您确定您真的不想知道字符串是否包含有效数字吗?带两个小数点的字符串是否有效?
tonumber()仅在存在有效数字和任意数量的前导或尾随空格时返回字符串表示的数字,否则返回nil。从那里你可以检查字符串中是否真的有一个数字。