如何从 JS 中的字符串中获取十六进制整数
How to get hex integer from a string in JS?
我想将这个:"#FFFFFF"
转换为这个:0xFFFFFF
。不使用 eval 怎么可能?
提前感谢,
去掉"#"并使用parseInt()
。
var hex = parseInt(str.replace(/^#/, ''), 16);
然后,如果你想以十六进制看到它,你可以使用.toString()
:
console.log(hex.toString(16));
使用以下代码:
var resultP = document.getElementById('result');
var btn = document.querySelector('button');
var input = document.querySelector('input');
function convert(hex) {
return Number(`0x${hex.substr(1)}`);
}
btn.addEventListener('click', () => {
resultP.innerHTML = convert(input.value);
})
* {
font-family: Arial;
}
<!DOCTYPE html>
<html>
<head>
<title>Hex code to hex integer</title>
<meta charset="UTF-8" />
</head>
<body>
<input type="text" maxlength="7" />
<button>Done</button>
<br />
Result:
<p id="result"></p>
</body>
</html>
你可以试试这段代码:
function hex2num(hexcode){ return Number( '0x' + hexcode.split(/[^0-9a-fA-F]+/).join('') ) }
在尝试解析输入之前,此函数将去除所有不是 0-9 之间的数字或 A-F 之间的字母字符的字符。输出是一个数字,因为0x009 === 9
JS 中。
此解决方案适用于处理小于 MAX SAFE INTEGER (9007199254740991) 的数字,但如果十六进制代码等于大于该数字的数字,则可能需要使用其他解决方案。
预期用法:
hex2num('#0000FF') === 255 // true
hex2num('#FFFFFF') === 16777215 // true
hex2num('0x000000000001') === 1 // true
hex2num('0L0L4') === 4 // true
相关文章:
- 文本框应该只允许十六进制值
- 正在将unicode转换为十六进制
- 在js中将字符串转换为十六进制
- 如何在JavaScript中将数字表示为十六进制
- 带有 TCP/IP 通信的 JavaScript 十六进制代码
- 用Javascript正则表达式过滤十六进制数字
- 如何创建和递增2或3位十六进制数字
- 将html代码转换为十六进制
- 从十六进制字符串中获取原始十六进制
- 如何从 javascript 中的 css 颜色名称中获取 rgb(或十六进制)代码
- 在悬停/单击时获取图像中颜色的十六进制代码
- 使用 javascript 或 php 从图像中获取所有十六进制值
- 如何从 JS 中的字符串中获取十六进制整数
- 根据十六进制颜色获取最接近的颜色名称
- 使用jQuery获取点击颜色的十六进制值
- 从Kuler API获取十六进制值
- Javascript函数从RGB值或十六进制值中获取颜色名称
- 套接字获取文本字符串作为十六进制数组,多个套接字相互调用's事件
- 有没有办法获取任何CSS颜色的十六进制值
- 如何获取十六进制元素的背景颜色代码