将字符串转换为十六进制然后返回字符串

时间:2015-12-15 19:42:43

标签: javascript

我必须将一个有效的C#函数转换为JavaScript,以便它执行客户端。这是C#...

// convert the cmac into a hex number so we can increment it and get the emac
long emacLong = Convert.ToInt64(_cmac, 16) + 1;
emac = emacLong.ToString("x12").ToUpper();

这是我到目前为止在JavaScript中的内容..

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

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

1 个答案:

答案 0 :(得分:2)

当您知道所需的确切长度时,可以轻松填充十六进制数字输出,如下所示:

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 param的长度。