Quiero tener una cadena que se pueda convertir en cuatro números.
Por ejemplo, convierte una cadena de E17B1237 en (225, 123, 18, 55), esto se convierte de hexadecimal a decimal.
E1 => 225, 7B => 123, 12 => 18, 37 => 55.¿Cómo puedo hacerlo? hexadecimal en decimal es solo un ejemplo, ¿hay alguna forma de hacerlo?
¿Cómo distingo una cadena E17B1237, la divido en (225, 123, 18, 55) y luego hago la conversión? Gracias.
Como quiero tener un rectángulo en la coordenada y usar x, y, w, h para crear una ID única, también puedo usar la ID única para recuperar x, y, w, h.
¿Cómo creo una identificación única (de x, y, w, h) que pueda ser clara para dividir en cuatro números, luego hago la conversión?
Suponiendo que cada código hexadecimal dentro de su cadena tenga una longitud de 2, puede dividir su cadena en una matriz usando .match(/[0-9A-F]{2}/ig) para hacer coincidir ejecuciones consecutivas de dos caracteres para obtener lo siguiente formación:
['E1', '7B', '12', '37'] Una vez que tenga esta matriz, puede usar .map() en ella para devolver una nueva matriz, donde cada elemento de código hexadecimal dentro de su matriz se convierte en su valor base 10 (decimal) equivalente. Puede hacer esto con la ayuda de parseInt(string, radix) , pasando 16 (la base hexadecimal) como base para convertir:
const hexStr = 'E17B1237'; const res = hexStr.match(/[0-9A-F]{2}/ig).map(hexPart => parseInt(hexPart, 16)); console.log(res);Puede usar los parámetros toString para convertir
function convert(value, from, to) { return parseInt(value, from).toString(to); } console.log( convert('e1', 16, 10), convert('123', 10, 16), );