Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将字符串转换为十六进制,然后再转换回字符串_Javascript - Fatal编程技术网

Javascript 将字符串转换为十六进制,然后再转换回字符串

Javascript 将字符串转换为十六进制,然后再转换回字符串,javascript,Javascript,我必须将一个正常工作的C#函数转换为JavaScript,以便它执行客户端。这是C# 以下是我到目前为止在JavaScript中获得的内容 var emac = parseInt(cmac, 16) + 1; emac = emac.toString(16); 输入为“0015D1833339”。输出应为“0015D183333A”。但是,JavaScript返回“15d183333a”。我需要保留领先的0。看起来C#函数通过.ToString的“x12”参数完成了这项工作。如何用JavaSc

我必须将一个正常工作的C#函数转换为JavaScript,以便它执行客户端。这是C#

以下是我到目前为止在JavaScript中获得的内容

var emac = parseInt(cmac, 16) + 1;
emac = emac.toString(16);

输入为“0015D1833339”。输出应为“0015D183333A”。但是,JavaScript返回“15d183333a”。我需要保留领先的0。看起来C#函数通过.ToString的“x12”参数完成了这项工作。如何用JavaScript实现这一点?我需要将其转换为一个整数,将其递增1,然后再转换回长度为12个字符的字符串。

当您知道所需的确切长度时,输入十六进制数的简单方法如下:

var emac = parseInt(cmac, 16) + 1;
emac = ("000000000000" + emac.toString(16)).substr(-12);

// or if you MUST have all caps....
emac = ("000000000000" + emac.toString(16)).substr(-12).toUpperCase();

此示例适用于长度12,如果需要不同的长度,可以调整0字符串和substr参数的长度。

必须用零填充,直到长度为12为止。只需填充生成的字符串即可。试试这个:转换成大写并用零填充。你只需要11个
0
s,你就忘记了
.toUpperCase()
;)我没有添加toUpperCase,因为OP没有特别要求它。但你有权只需要十一个。为了简单起见,将其与substr长度保持一致。OP声明:输出应为“0015D183333A”。来吧,我等着给你一个+1,因为在我准备:)Perfecto之前发布了答案!工作起来很有魅力!我能处理.toUpperCase(),但谢谢你指出我的遗漏。;)
var emac = parseInt(cmac, 16) + 1;
emac = ("000000000000" + emac.toString(16)).substr(-12);

// or if you MUST have all caps....
emac = ("000000000000" + emac.toString(16)).substr(-12).toUpperCase();