检查RGB颜色代码是否有效

问题描述:

我无法编写一个小函数来验证RGB颜色代码。基本上,我想检查一个变量是否为RGB,如果是则返回true,否则返回false。例如:检查RGB颜色代码是否有效

validColor( “A5ADBA”) - 有效

validColor( “09c8dZ7”) - 不是有效的(具有Z)

validColor( “001AFFB”) - 不是有效的(有多余的字符)

我已经尝试了一些东西,但我不能拿出任何解决方案。任何帮助,将不胜感激。

+0

因此,您的要求是它的长度为6个字符,全部必须是有效的十六进制数字(0-9A-Fa-f)。听起来不太难写。你试过的几件事*你有什么困难?如果你的努力不在你的问题中,它不存在。 –

+0

我没有意识到数字只有0-9和a-f。感谢您的回应。对于没有代码也感到抱歉,我正在使用手机,因为我离开了我的电脑。 –

RGB代码具有24位格式(位0..23)像: 'FFFFFF' 可以转换为(255,255,255)。 FF是十进制的255。 您可以使用string.sub拆分给定的字符串,并检查它是否是一个有效的范围内(0-255)

+0

这很复杂 – Piglet

所有你需要知道的是,弦长六个字符,每一个是有效的十六进制数字,右?

function validHexColor(color) 
    return nil ~= color:find("^%x%x%x%x%x%x$") 
end