Я хочу создайте функцию, которая будет принимать любую старую строку (обычно это одно слово) и из этого каким-то образом генерирует шестнадцатеричное значение между # 000000
и #FFFFFF
, поэтому я могу использовать его в качестве цвета для элемента HTML.
Возможно даже сокращенное шестнадцатеричное значение (например: #FFF
), если это менее сложно. Фактически, цвет из «безопасной веб-палитры» был бы идеальным.
Просто перенос через Java из Вычислить шестнадцатеричный цветовой код для произвольной строки в Javascript:
function hashCode(str) { // java String#hashCode
var hash = 0;
for (var i = 0; i < str.length; i++) {
hash = str.charCodeAt(i) + ((hash << 5) - hash);
}
return hash;
}
function intToRGB(i){
var c = (i & 0x00FFFFFF)
.toString(16)
.toUpperCase();
return "00000".substring(0, 6 - c.length) + c;
}
Чтобы преобразовать, выполните:
intToRGB(hashCode(your_string))