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

JavaScriptで乱数とランダムな文字列を生成する方法を解説

JavaScriptでは、Math.random()を使うことで、英数字を組み合わせたランダムな文字列を簡単に生成できます。本記事では、3文字のランダムな文字列(数字・アルファベット)を生成するサンプルコードを紹介します。

1. 使用する文字セットを定義する

まず、生成に使用する文字(数字とアルファベットの大文字・小文字)を変数に格納します。

var storedCharacters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

この文字列の中から、ランダムに1文字ずつ取り出していく仕組みです。

2. Math.random()でランダムな文字列を生成する

次に、Math.random()を使ってランダムに文字を選び出す関数を作成します。以下が実際のコード例です。

サンプルコード

function generateRandom3Characters(size) {
    var generatedOutput = '';
    var storedCharacters =
    '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    var totalCharacterSize = storedCharacters.length;
    for ( var index = 0; index < size; index++ ) {
        generatedOutput += storedCharacters.charAt(Math.floor(Math.random() * totalCharacterSize));
    }
    return generatedOutput;
}
console.log(generateRandom3Characters(3));

コードのポイント

  • Math.random():0以上1未満のランダムな数値を返します。
  • Math.floor():小数点以下を切り捨てて、文字セットのインデックスとして使える整数に変換します。
  • charAt():指定した位置の文字を取り出します。
  • forループ:引数sizeで指定された回数だけ処理を繰り返し、目的の文字数の文字列を作成します。

3. プログラムを実行する

上記のプログラムは、Node.js環境で以下のコマンドを実行することで動作を確認できます。

node fileName.js

実行結果

ここでは、ファイル名を「demo136.js」としています。実行すると、以下のような出力が得られます。

PS C:\Users\Amit\JavaScript-code> node demo136.js
lq4

このように、実行するたびに「lq4」のような異なる3文字のランダムな文字列が出力されます。引数の値を変更すれば、任意の文字数のランダム文字列も簡単に生成可能です。

  1. JavaScriptでランダムな16進数カラーコード(HEX)を生成する方法

    JavaScriptを使えば、ランダムな16進数のカラーコード(HEXコード)を簡単に生成できます。この記事では、ボタンをクリックするたびにランダムな色が表示されるシンプルなサンプルを紹介します。 実装例 以下のコードでは、「GENERATE」ボタンをクリックするとランダムなHEXカラーコードが生成され、その色がボックスの背景に適用されると同時に、コード自体も画面に表示されます。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" />

  2. JavaScriptで数値を丸める・切り捨てる方法|Math.round()とMath.trunc()の違いと使い方

    JavaScriptには、小数を整数へ変換するためのメソッドとして、Math.round() と Math.trunc() の2つが標準で用意されています。Math.round():小数点以下を四捨五入し、最も近い整数に丸めます。例えば「3.5」は「4」に、「3.4」は「3」になります。Math.trunc():小数点以下を単純に取り除き、整数部分だけを残します。「3.9」も「3.1」もどちらも「3」になります。それぞれの特徴を踏まえながら、実際のコード例を見ていきましょう。Math.round() と Math.trunc() の違いメソッド動作例(3.999)Math.round()四捨五