如何从颜色代码的短字符串中获取十六进制字符

How to get hexadecimal characters from short string for colorcode

我想要用户名字符串中的十六进制颜色代码。对于长用户名,它可以正常工作,但对于短用户名,它会失败。 对于 freddie_steven 它 returns feddee,但是对于 alex_steven 它 returns 只有非常短的 aeee。如何解决这个问题。

如何从用户名获取有效的十六进制颜色代码以设置与用户名不同的缩略图背景。

#user-thumbnail{
    width: 100px;
    height: 100px;
    border-radius: 100%;
}

<div id='user-thumbnail'></div>

var username = 'freddie_steven';
var colorCode = '';

for(var i = 0; i<username.length; i++){
    if(username.charCodeAt(i) >= 97 && username.charCodeAt(i) <= 102)
        colorCode += username.charAt(i)
}

document.getElementById('user-thumbnail').style.background = '#' +colorCode.substr(0, 6);

如果字符不匹配,则选择随机字符!

var username = 'alex_steven';
var colorCode = '';

var validHex = [
  'a',
  'b',
  'c',
  'd',
  'e',
  'f'
];
var randomNumber = Math.floor(Math.random() * validHex.length);

for (var i = 0; i < username.length; i++) {
  if (username.charCodeAt(i) >= 97 && username.charCodeAt(i) <= 102) {
    colorCode += username.charAt(i)
  } else {
    colorCode += validHex[randomNumber]
  }
}

console.log(colorCode.substr(0, 6));