Как есть, если вы запустите это в браузере, это не сработает. Однако, если вы хотите прокомментировать первый «var rgbArray» и раскомментировать второй «var rgbArray», тогда скрипт будет работать.Почему мой JavaScript не работает? Кажется, проблема с моим RegEx, но я не могу понять это
Почему первый способ не работает?
<!DOCTYPE html>
<html>
<head></head>
<body>
<script type="text/javascript">
var rgbColorString = "rgb(60, 59, 110)";
var rgbArray = parseRGBColor(rgbColorString);
// var rgbArray = [60, 59, 110]
convertRGBToHEX(rgbArray);
function parseRGBColor(rgbColorString){
var colorStringMatch = rgbColorString.match(/[0-9]{1,3}/g);
return colorStringMatch;
}
function convertRGBToHEX(rgbArray){
document.write("rgbArray: " + rgbArray + "<br>");
var hexColor = "";
for(var i=0; i<rgbArray.length; i++){
hexColor = hexColor + convertToHexString(rgbArray[i]);
}
}
function convertToHexString(base10Color){
document.write("Color In: " + base10Color + " => ");
var convertedColor = (base10Color < 16) ? ("0" + base10Color.toString(16)) : base10Color.toString(16);
document.write("Color Out: " + convertedColor + "<br>");
}
</script>
</body>
</html>
чуть ниже линии, где вы устанавливаете 'rgbArray', добавьте это:' console.log (rgbArray) '. Что вы видите на консоли? –
Важная часть: 'console.log (typeof base10Color)' – Bergi
В одном случае вы передаете '[60, 59, 110]', в случае с регулярным выражением, которое вы передаете '[" 60 "," 59 " «110»] ' –