【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() - JavaScript | MDN
Math.random() 関数は、 0 以上 1 未満 (0 は含むが、 1 は含まない) の範囲で浮動小数点の擬似乱数を返します。その範囲ではほぼ均一な分布で、ユーザーは範囲の拡大をすることができます。実装側で乱数生成アルゴリズムの初期シードを選択します。ユーザーが初期シードを選択、またはリセットすることは出来ませ...
Math.floor() - JavaScript | MDN
Math.floor() 関数は与えられた数値以下の最大の整数を返します。

未経験、異業種からIT業界に転身。フロントエンジニア。主にJavascript(React.js)をつかったWEBアプリ開発にたずさわる。
お問い合わせ、ご相談など → genpsp10@gmail.com

psp7をフォロー
プログラミング
スポンサーリンク
psp7をフォロー
ハトらぼ

コメント