Просмотров: 4 872

Как генерировать строку из случайных чисел и букв на Javascript.

При разработке своих приложений, возможно, вам может понадобится сгенерировать строку из случайных букв и цифр.

Например, недавно я создавал страницу, на которой нужно было генерировать пароль пользователя при клике по ссылке.

Вот живой пример, как это работает:

Хочу поделиться кодом, который может вам помочь решить эту задачу на Javascript.

function str_rand() {
        var result       = '';
        var words        = '0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM';
        var max_position = words.length - 1;
            for( i = 0; i < 5; ++i ) {
                position = Math.floor ( Math.random() * max_position );
                result = result + words.substring(position, position + 1);
            }
        return result;
    }
$("#gen").click(function() {
        $("#short_link").val(str_rand());       
});

Имеем две функции:

1) str_rand

Эта функция генерирует случайное число из символов, которые определены в переменной words.

Чтобы изменить количество символов, которые будут генерироваться, нужно изменить цифру 5 в этом выражении:

for( i = 0; i < 5; ++i )

На то количество символов, которые вам будут необходимы.

2) $(«#gen»).click(function() { …

При клике на элемент с «id» gen, в элемент с id short_link будет вставлено случайное выражение, которое генерировалось функцией str_rand.

В общем, это все. Используйте этот код в своих приложениях и экономьте свое время.

Вот несколько книг по Javascript, которые могут быть полезными для вас:

07099997_cover-pdf-kniga-n-prohorenok-html-javascript-php-i-mysql-dzhentlmenskiy-nabor-web-mastera   12367630_cover-pdf-kniga-elizabet-robson-izuchaem-programmirovanie-na-javascript-9523650   01687985_cover-pdf-kniga-petr-tashkov-veb-mastering-na-100-html-css-javascript-php-cms-ajax-raskrutka

  • Александр

    Спасибо за полезную функцию. Я ее немного доработал — чуть оптимизировал и добавил возможность указывать количество символов в генерируемой строке.

    function getRandomString(charsCount) {
    var words = ‘0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM’,
    max_position = words.length — 1,
    position,
    result = »;

    if (!(+charsCount)) {
    return result;
    }

    for (var i = 0; i < charsCount; i++) {
    position = Math.floor(Math.random() * max_position);
    result += words[position];
    }

    return result;
    }