Как создать случайную шестнадцатеричную строку в JavaScript - PullRequest
0 голосов
/ 10 октября 2019

Как создать случайную строку, содержащую только шестнадцатеричные символы (0123456789abcdef) заданной длины?

Ответы [ 3 ]

1 голос
/ 10 октября 2019

Если вы можете использовать библиотеку lodash, здесь приведен фрагмент кода для генерации строки из 16 символов:

let randomString = _.times(16, () => (Math.random()*0xF<<0).toString(16)).join('');
0 голосов
/ 10 октября 2019

Создайте случайное число как обычно и используйте parseInt(), чтобы преобразовать число в шестнадцатеричное число, передавая 16 второй параметр в качестве радиуса.

function getRanHex(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max); 
  const dec = Math.floor(Math.random() * (max - min + 1)) + min;
  return parseInt(dec, 16);
}
0 голосов
/ 10 октября 2019

Есть несколько способов. Один из способов - просто извлечь из предопределенной строки:

function genHexString(len) {
    const hex = '0123456789ABCDEF';
    let output = '';
    for (let i = 0; i < len; ++i) {
        output += hex.charAt(Math.floor(Math.random() * hex.length));
    }
    return output;
}

Другой способ - добавить случайное число в диапазоне от 0 до 15, преобразованное в шестнадцатеричное с помощью toString:

function genHexString(len) {
    let output = '';
    for (let i = 0; i < len; ++i) {
        output += (Math.floor(Math.random() * 16)).toString(16);
    }
    return output;
}
...