JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

【JavaScript】指定した長さのランダムな英字文字列を生成する方法

JavaScriptで、数値 n を引数として受け取り、英小文字(a〜z)だけを使った長さ n のランダムな文字列を返す関数を作成する方法を紹介します。

実装コード

Math.random()String.fromCharCode() を組み合わせることで、シンプルに実装できます。

const num = 8;

const randomNameGenerator = num => {
  let res = '';
  for (let i = 0; i < num; i++) {
    const random = Math.floor(Math.random() * 26);
    res += String.fromCharCode(97 + random);
  }
  return res;
};

console.log(randomNameGenerator(num));

出力結果

kdcwping

注意: ランダムな文字列を生成しているため、実行するたびに出力結果は変わります。上記はあくまで一例です。

コードの解説

このコードの仕組みを順番に見ていきましょう。

  1. Math.random():0 以上 1 未満のランダムな小数を返します。
  2. Math.floor(Math.random() * 26):26 を掛けて小数点以下を切り捨てることで、0〜25 の整数をランダムに取得します。
  3. String.fromCharCode(97 + random):英小文字「a」の文字コードは 97、「z」は 122 です。97 に 0〜25 の乱数を加えることで、「a」〜「z」のいずれか 1 文字を取り出せます。
  4. ループ内で生成した文字を順に連結していき、指定した長さの文字列を完成させます。

別の書き方:候補文字列から 1 文字ずつ選ぶ方法

文字コードを意識したくない場合は、あらかじめ候補となる文字列を用意しておく方法も便利です。

const chars = 'abcdefghijklmnopqrstuvwxyz';

const randomNameGenerator = num => {
  let res = '';
  for (let i = 0; i < num; i++) {
    res += chars[Math.floor(Math.random() * chars.length)];
  }
  return res;
};

こちらの方法なら、数字や大文字などを含めたい場合も、chars の中身を変更するだけで柔軟に対応できるのがメリットです。用途に合わせて使い分けてみてください。

  1. JavaScriptで特定の文字の前後の文字列を取得する方法|substring()の使い方を実例付きで解説

    JavaScriptで文字列の一部を取得したい場合、String.substring()メソッドが役立ちます。このメソッドを使えば、特定の文字を基準にして、その「前」または「後」にある任意の部分文字列を簡単に取り出すことができます。substring()メソッドの基本substring()メソッドは、開始インデックス(含む)から終了インデックス(含まない)までの範囲で文字列を切り出します。引数を1つだけ指定した場合は、そのインデックスの位置から文字列の末尾まですべてが抽出されます。構文1:特定の文字より後ろの部分を取得する次のコードでは、特定の文字の直後から文字列の末尾までを取得しています。s

  2. JavaScriptでランダムな数値を生成する方法|Math.random()の使い方を解説

    JavaScriptのMath.random()関数は、0以上1未満の範囲でランダムな浮動小数点数を生成するために使用されます。戻り値は「0以上・1未満」であり、1自体は含まれない点に注意してください。この関数を活用すれば、サイコロのようなランダムな整数の生成や、くじ引き・シャッフル処理など、さまざまな場面で乱数を利用できます。Math.random()で1〜10のランダムな整数を生成する方法1から10までのランダムな整数を取得するには、Math.random()の結果に10を掛け、Math.floor()で小数点以下を切り捨てた後、1を加算します。数式で表すと以下のようになります。Math.