JavaScript Program for Generating a String of Specific Length

In this article, we are going to discuss how can we generate a string having a specific length. You might encounter many situations when working with JavaScript where you need to produce a string with a specified length. This could be done for a number of reasons, including generating passwords, unique IDs, or formatting data for display.

Table of Content

  • Using For Loop
  • Using String.prototype.repeat()
  • Using Array Manipulation
  • Using Array.from()
  • Using Crypto Module

Using For Loop

  • In this approach, we initialize an empty string result and use a loop to generate random characters and concatenate them to the result until the desired length is achieved.
  • Create a characters array containing all the characters that you allow to be in your string.
  • Create a variable “str” to store your string & iterate “n” times.
  • Inside the for loop generate a random index using Math.random() and store it in a variable.
  • Select the character present at the previously generated random index from your character array and append it to the previously created “str”.
  • After the loop ends you will have your “n” length string in the variable “str”.

Example: This example shows the use of the above-explained approach.

Javascript
function getString(n) {
    let str = '';
    const characters = 
        'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    const charLen = characters.length;

    for (let i = 0; i < n; i++) {

        // Generating a random index
        const idx = Math.floor(Math.random() * charLen);

        str += characters.charAt(idx);
    }

    return str;
}

const result = getString(10);
console.log(result);

Output
qPyRFuEHGB

Using String.prototype.repeat()

  • Here, we select a random character from the given character set and use the repeat() method to repeat it the desired number of times.
  • Create a characters array containing all the characters that you allow to be in your string.
  • Generate a random index using Math.random() and store it in a variable.
  • Select the character present at previously generated random index from your character array. And use repeat() method to repeat the character “n” times.

Example: This example shows the use of the above-explained approach.

Javascript
function getString(n) {
    const characters = 
        'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    const charLen = characters.length;

    // Generating a random index
    const idx = Math.floor(Math.random() * charLen);

    // Using above generated random index
    // and extracting the corresponding 
    // character from "characters" array
    const ch = characters.charAt(idx);

    // Using repeat method to repeat
    // the character "n" times.
    return ch.repeat(n);
}

const result = getString(10);
console.log(result);

Output
QQQQQQQQQQ

Using Array Manipulation

  • In this approach, we push random characters into an array and then use the join() method to convert the array into a string.
  • Create a characters array containing all the characters that you allow to be in your string.
  • Create an empty array “resultArray” to store characters. And iterate it “n” times.
  • Inside the for loop generate a random index using Math.random() and store it in a variable.
  • Select the character present at previously generated random index from your character array and push it in the previously created “resultArray”.
  • After the loop ends you will have your “n” characters stored in your array “resultArray”. Use join() method to join all the characters in the array as a string.

Example: This example shows the use of the above-explained approach.

Javascript
function getString(n) {
    const characters = 
        'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    const charLen = characters.length;

    const resultArray = [];

    for (let i = 0; i < n; i++) {
    
        // Generating a random index 
        const idx = Math.floor(Math.random() * charLen);

        // Pushing the corresponding
        //  character to the array
        resultArray.push(characters.charAt(idx));
    }

    // Joining all the characters of the array
    return resultArray.join('');
}

const result = getString(10);
console.log(result);

Output
QwZMolRRqi

Using Array.from()

To generate a string of a specific length using `Array.from()`, create an array with the desired length using `{ length }`. Fill it with the specified character using the mapping function, then join the array into a string.

Example:

JavaScript
function generateString(length, char) {
    return Array.from({ length }, () => char).join('');
}

// Example usage:
const length = 5;
const character = '*';
console.log(generateString(length, character)); 

Output
*****

Using Crypto Module

The crypto module in Node.js provides cryptographic functionality that can help in generating secure random strings. By leveraging crypto.randomBytes, we can generate a buffer of random bytes and convert it into a string.

Example: This example demonstrates the use of the crypto module to generate a random string of the desired length.

JavaScript
const crypto = require('crypto');

function getSecureString(length) {
    const characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    const charLen = characters.length;

    // Generate random bytes
    const randomBytes = crypto.randomBytes(length);
    let result = '';

    for (let i = 0; i < length; i++) {
        // Use each byte value to select a character from the allowed set
        const idx = randomBytes[i] % charLen;
        result += characters.charAt(idx);
    }

    return result;
}

const result = getSecureString(10);
console.log(result);

Output
zSuzbWBCwo