Нужно получить случайный набор букв и цифр (string
), заданной длинны, например 10
.
Как можно такое реализовать в JS?
Хотелось бы увидеть Ваши попытки реализации.
А так - это просто: берём нужный диапазон (-ы) и циклом генерируем случайное значение из него.
let range = (start, end) => [...Array(end - start).keys(), end - start].map(n => start + n);
let A = range(65, 90); // A-Z
let a = range(97, 122); // a-z
let dig = range(48, 57); // 0-9
let all = A.concat(a).concat(dig); // Склеиваем в один
function generateString(length = 10){
let str = '';
for(let i = 0; i < length; i++){
str += String.fromCharCode(all[Math.floor(Math.random() * all.length)]); // Берём случайное число, преобразуем в соответствующий символ и добавляем к строке
}
return str;
}
console.info(generateString(15));
Как вариант, можно так:
var random = Math.random().toString(36).substr(2, 10);
console.info(random);
Я для себя написал такой код... и не стесняюсь этого)
function createRandomString(sumString){
const symbolArr = "1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
var randomString = "";
for (let i=0; i<sumString; i++){
var index = Math.floor(Math.random()*symbolArr.length);
randomString +=symbolArr[index];
}
return randomString;
}
console.log(createRandomString(10));
А так, как Вы хотели посмотреть на другие реализации - вот решение этой задачи в стиле ООП
'use strict';
class hashGenerator {
// startSymbolCode (int)
// finishSymbolCode (int)
// hashLength (int)
// hash - (string || false)
constructor (hashLength) {
this.startSymbolCode = 48;
this.finishSymbolCode = 126;
if ( !isNaN(parseInt(hashLength)) ){
this.hashLength = parseInt(hashLength);
this.generateHash();
}
else {
this.hash = false;
}
}
randomInteger(min, max) {
var rand = min - 0.5 + Math.random() * (max - min + 1)
rand = Math.round(rand);
return rand;
}
generateHash (){
this.hash = '';
for(let i=0; i<this.hashLength; i++){
this.hash += String.fromCharCode(this.randomInteger(this.startSymbolCode,this.finishSymbolCode));
}
}
}
let hash = new hashGenerator(10);
console.log (hash.hash);
Код взят отсюда https://www.youtube.com/watch?v=m-stCtAm-SU&t=925s
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Нужно создать html-5 баннер в Adobe Animate с фиксированной шириной (300px) и адаптивной высотой (минимальная высота должна оставаться 600px)Animate при настройке...
Кто то использовал 12 колоночную сетку только не на 1200px, а на 1920pxНе full-page, а именно 1920 ? Или для таких задач лучше создавать свою сетку ? Кто сталкивался?
при клике на процессор открывается модальное окно, и если кликать по кнопке в модальном этот скрипт не срабатывает
Помогите пожалуйста! Установил программу Nodejs, потом создал папку, установил в нее сервер nvm (команда npm init), далее туда же установил библиотеку...