Javascript-将1个以上的十六进制替换/转换为十进制?

Javascript-将1个以上的十六进制替换/转换为十进制?,javascript,hex,decimal,regexp-replace,Javascript,Hex,Decimal,Regexp Replace,如何将某些(多个)十六进制替换为十进制? 需要使用哪些方法 示例文本: Try to convert this hex number 0x5A into (90) and 0x83 into (131). 我想将上面文本中的0x54和0x83更改为90和131。我被卡住了,不知道该用什么方法 函数转换(){ var code=document.getElementById(“codearea”).value; var fhex=代码匹配(/0[xX][0-9a-fA-F]+/g); 对于(v

如何将某些(多个)十六进制替换为十进制? 需要使用哪些方法

示例文本:

Try to convert this hex number 0x5A into (90) and 0x83 into (131).
我想将上面文本中的0x54和0x83更改为90和131。我被卡住了,不知道该用什么方法

函数转换(){
var code=document.getElementById(“codearea”).value;
var fhex=代码匹配(/0[xX][0-9a-fA-F]+/g);
对于(var i=0;i


单击
在输出中两次获得这两个数字的原因是,您将fhex传递到了replace,其中它需要一个字符串,因此它将[90131]转换为。相反,您希望传递转换后的数字,然后将其转换为实际需要的字符串

另一个问题是,如果您将十六进制正则表达式作为第一个参数传入
replace
,那么它将匹配所有十六进制数,因此您希望传递的内容仅与您要替换的字符串相匹配,而与您当前拥有的数字相匹配。幸运的是,字符串本身可以做到这一点!因此,不要替换每个字符串
fhex[i]
带有数字的值,如果保留字符串,并将数字放入单独的变量中,则可以将原始字符串和新的数字值传递到
replace
中,如下所示:

函数转换(){
var code=document.getElementById(“codearea”).value;
var fhex=代码匹配(/0[xX][0-9a-fA-F]+/g);
对于(var i=0;i

单击
const txt=document.getElementById('codearea')。值;
常数fhex=txt.match(/0[xX][0-9a-fA-F]+/g);
替换常数=fhex.reduce(
(acc,hex)=>acc.replace(hex,parseInt(hex,16)),
文本
);
document.getElementById('codearea')。值=已替换;

hahahahaha…这让我很痛苦4个小时+玩游戏、阅读、测试等等,最后我在这里寻求帮助。我简直不敢相信它只需要两行代码就可以修复xD。顺便说一句,谢谢你帮我解决问题和工作。接下来只需要我的大脑,来理解代码。谢谢!谢谢,已经测试过了,它也在工作。我只是有点难以理解阅读/查看此代码是如何处理/运行的(对javascript来说是新的)-尤其是“const替换”过程。再次感谢您的帮助。