2016-02-02 4 views
0

Для выполнения преобразования я последовал SO пост ниже, который дал представление о том, как преобразования происходят и цвета показаны в браузереПреобразование название цвета в шестнадцатеричные значения

Но когда я проверил со следующими примерами:

<body bgcolor="a"> 
10,0,0 
#0A 00 00 


<body bgcolor="marker"> 
10,0,224 
#0A 00 E0 


<body bgcolor="kevineve"> 
224,14,224 
#E00EE0 

же правило не помогло мне найти точные значения для kevineve#E00EE0

Каковы правила для преобразования имени цвета его шестнадцатеричное значение?

имя

Цвет может быть любое значение: как показано ниже должности или просто любого алфавита

SO сообщение: Why does HTML think “chucknorris” is a color?

Примечание: пожалуйста, обратите внимание гекс конвертированы значения: a и kevineve

Любая помощь спасибо ..

+0

Я думаю, ваш ответ [здесь] (http://stackoverflow.com/questions/1573053/javascript-function-to-convert- цветовые имена-к-шестнадцатеричных кодов). Аналогичный вопрос. – user2584538

+0

@ user2584538 нет его не похоже здесь нет реальных имен цветов учитываются – tharif

+0

вы можете использовать хранилище или массив БД как-то. это не возможно для вас ..? – user2584538

ответ

0

но шестнадцатеричное значение отличается от указанного в том, что SO сообщение знаю

Вот как получить значение kevineve

  • Изменить каждый не-шестнадцатеричный символ в 0: 0e000e0e
  • Добавить '0' в строке, пока его длина не кратна 3: 0e000e0e0
  • Разделить строку на 3 равные части: 0e000e0e0
  • В то время как длина подстроки больше, чем 2, и все три подстроки начинаются с 0, удалить ведущие 0s из каждой строки .: e0e0
  • 0e
  • Если длина суб- строки все еще больше 2, а затем усекайте каждую подстроку до двух символов: не нужно!

Окончательный результат: #e00ee0

как же строка "а"?

  • Изменение каждого без шестигранной символов в 0: a
  • Добавить '0' в строке, пока его длина не кратна 3: a00
  • Разделить строку на 3 равные части: a00
  • Хотя длина подстроки больше 2, а все три подстроки начинаются с 0, удалите ведущие 0 из каждой строки .: не нужно!
  • Если длина подстроки еще больше 2, то обрезайте каждую подстроку на 2 символа: не нужно!

Теперь, поскольку шестнадцатеричные значения находятся в парах из двух. это означает, что a00 является aa0000, так:

конечный результат: #aa0000

+0

спасибо @dippas да, есть разные algos для разных длин, кажется..https: //www.w3.org /TR/2011/WD-html5-20110525/common-microsyntaxes.html#colors – tharif

+0

, если вы используете этот алгоритм, вы получите любое шестнадцатеричное значение из любой строки – dippas

+0

, как получилось для строки «a»? – tharif