【Javascript】ランダムな文字列を指定した長さで生成(英数字)

Javascriptでランダムな文字列を生成

javascriptでランダムな文字列を生成するコード例は下記です。

function getRandomStr(){
  const LENGTH = 8 //生成したい文字列の長さ
  const SOURCE = "abcdefghijklmnopqrstuvwxyz0123456789" //元になる文字
  let result = ''

  for(let i=0; i<LENGTH; i++){
    result += SOURCE[Math.floor(Math.random() * SOURCE.length)];
  }
  
  return result //p9zh1ziw
}

 生成された文字列には小文字の英字と数字が含まれます。

ただし、必ず英字と数字の両方が含まれる保証はありません。英字のみ、または数字のみの文字列となる可能性があります。

大文字、小文字、数字、記号をそれぞれ1つ以上含むランダムな文字列を生成したい場合は、下記記事を参考にしてください。

【Javascript】ランダムな文字列を生成(大文字、小文字、数字、記号を1つ以上含む)
Javascriptで大文字、小文字、数字、記号を1つ以上含むランダム文字列を生成指定した文字数でそれぞれを1つ以上含む、ピュアJavascriptで書かれたランダム文字生成コードはネット上にもなさそうだったので作ってみました。Java...

ランダム文字列生成のコード補足説明

ランダム文字列の元になる文字はSOURCEで定義しています。

SOURCE文字列からランダムに文字を選び取るためにMath.random()メソッドを使っています。random()は0~1未満の乱数を返します。

Math.random() //0.6731022123688462

 この値にSOURCE文字列の長さ(今回は36)をかけ、Math.floor()メソッドで整数に整えることで(0~1) * 36 つまり0~36のどれかをランダムで選んでいます。

Math.random() 、Math.floor()について詳しくは下記を参照してください。

Math.random()
Math.random()関数は、0–1(0以上、1未満)の範囲で浮動小数点の擬似乱数を返します。その範囲ではほぼ均一な分布で、ユーザーは範囲の拡大をすることができます。実装側で乱数生成アルゴリズムの初期シードを選択し、ユーザーが初期シードを選択、またはリセットすることは出来ません。
Math.floor()
Math.floor() メソッドは、引数として与えた数以下の最大の整数を返します。

コメント