繁体   English   中英

如何将一个字符串转换为四个数字?

[英]How to convert a string into four numbers?

我想要一个可以转换成四个数字的字符串。

例如,它将字符串从 E17B1237 转换为 (225, 123, 18, 55),这是从十六进制转换为十进制。

E1 => 225,
7B => 123, 
12 => 18, 
37 => 55.

我该怎么做? 十六进制转十进制只是一个例子,有什么办法吗?

如何区分字符串E17B1237,拆分为(225、123、18、55),然后进行转换。 谢谢。

因为我想在坐标中有一个矩形,并且使用x,y,w,h来创建唯一ID,那么我也可以使用唯一ID来检索x,y,w,h。

如何创建一个唯一 ID(来自 x、y、w、h),可以清楚地拆分为四个数字,然后进行转换。

您可以使用 toString 参数进行转换

 function convert(value, from, to) { return parseInt(value, from).toString(to); } console.log( convert('e1', 16, 10), convert('123', 10, 16), );

假设您的字符串中的每个十六进制代码的长度为 2,您可以使用.match(/[0-9A-F]{2}/ig)将字符串分块成一个数组,以匹配两个字符的连续运行以获得以下结果大批:

['E1', '7B', '12', '37']

一旦你有了这个数组,你可以在它上面使用.map()来返回一个新数组,其中数组中的每个十六进制代码元素都转换为其等效的以 10 为底的(十进制)值。 您可以在parseInt(string, radix)的帮助下执行此操作,方法是将16 (十六进制的基数)作为要转换的基数:

 const hexStr = 'E17B1237'; const res = hexStr.match(/[0-9A-F]{2}/ig).map(hexPart => parseInt(hexPart, 16)); console.log(res);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM