2017-09-01 80 views
-5

我無法編寫一個小函數來驗證RGB顏色代碼。基本上,我想檢查一個變量是否爲RGB,如果是則返回true,否則返回false。例如:檢查RGB顏色代碼是否有效

validColor( 「A5ADBA」) - 有效

validColor( 「09c8dZ7」) - 不是有效的(具有Z)

validColor( 「001AFFB」) - 不是有效的(有多餘的字符)

我已經嘗試了一些東西,但我不能拿出任何解決方案。任何幫助,將不勝感激。

+0

因此,您的要求是它的長度爲6個字符,全部必須是有效的十六進制數字(0-9A-Fa-f)。聽起來不太難寫。你試過的幾件事*你有什麼困難?如果你的努力不在你的問題中,它不存在。 –

+0

我沒有意識到數字只有0-9和a-f。感謝您的迴應。對於沒有代碼也感到抱歉,我正在使用手機,因爲我離開了我的電腦。 –

回答

0

RGB代碼具有24位格式(位0..23)像: 'FFFFFF' 可以轉換爲(255,255,255)。 FF是十進制的255。 您可以使用string.sub拆分給定的字符串,並檢查它是否是一個有效的範圍內(0-255)

+0

這很複雜 – Piglet

3

所有你需要知道的是,弦長六個字符,每一個是有效的十六進制數字,右?

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