JavaScriptでランダムな英数字の文字列を生成する方法


方法1: Math.random()とString.fromCharCode()を使用する方法 この方法では、Math.random()を使用してランダムな数値を生成し、String.fromCharCode()を使用して数値を文字に変換します。

function generateRandomString(length) {
  let result = '';
  const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  for (let i = 0; i < length; i++) {
    const randomIndex = Math.floor(Math.random() * characters.length);
    const randomChar = characters.charAt(randomIndex);
    result += randomChar;
  }
  return result;
}
const randomString = generateRandomString(10);
console.log(randomString);

上記のコードでは、generateRandomStringという関数を定義し、lengthパラメータを受け取ります。characters変数には、生成するランダムな文字列に含める文字のリストが含まれています。forループを使用して、指定した長さのランダムな文字列を生成し、result変数に追加しています。最後に、生成されたランダムな文字列を返します。

方法2: crypto.getRandomValues()を使用する方法 この方法では、crypto.getRandomValues()メソッドを使用してランダムな数値のバイト配列を生成し、それを文字列に変換します。

function generateRandomString(length) {
  const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  const charactersLength = characters.length;
  const randomValues = new Uint8Array(length);
  window.crypto.getRandomValues(randomValues);
  let result = '';
  for (let i = 0; i < length; i++) {
    result += characters[randomValues[i] % charactersLength];
  }
  return result;
}
const randomString = generateRandomString(10);
console.log(randomString);

上記のコードでは、generateRandomStringという関数を定義し、lengthパラメータを受け取ります。characters変数には、生成するランダムな文字列に含める文字のリストが含まれています。randomValues変数には、crypto.getRandomValues()メソッドを使用して生成されたランダムな数値のバイト配列が格納されます。forループを使用して、指定した長さのランダムな文字列を生成し、result変数に追加しています。最後に、生成されたランダムな文字列を返します。

これらの方法を使用して、JavaScriptでランダムな英数字の文字列を生成することができます。