ホームページ  >  に質問  >  本文

JavaScript でランダムな英数字文字列を生成するにはどうすればよいですか?

JavaScript で一意の識別子として使用するランダムな英数字 (大文字、小文字、数字) 文字列を生成する (合理的な範囲内で) 最も短い方法は何ですか?

P粉775788723P粉775788723372日前670

全員に返信(2)返信します

  • P粉312195700

    P粉3121957002023-10-13 12:38:49

    これが非常に素晴らしくエレガントなソリューションであることを発見しました:

    リーリー

    この実装に関するコメント:

    • これにより、長さ 0 ~ 12 文字の文字列が生成されます。浮動小数点文字列化では末尾のゼロが削除されるため、通常は 11 文字になります。
    • 大文字は生成されず、小文字と数字のみが生成されます。
    • ランダム性は Math.random() から得られるため、出力は予測可能であるため、必ずしも一意であるとは限りません。
    • 理想的な実装を仮定したとしても、出力には最大 52 ビットのエントロピーが含まれます。つまり、約 70M の文字列を生成した後に重複が発生する可能性があります。

    返事
    0
  • P粉985686557

    P粉9856865572023-10-13 09:56:40

    特定の文字のみを許可したい場合は、次のようにすることもできます:

    リーリー

    デモ用の jsfiddle は次のとおりです: http://jsfiddle.net/wSQBx/

    もう 1 つの方法は、特別な文字列を使用して、使用する文字の種類を関数に指示することです。あなたはこれを行うことができます: ### リーリー

    フィドル:

    http://jsfiddle.net/wSQBx/2/

    あるいは、以下で説明する Base36 メソッドを使用するには、次のことを実行できます。

    リーリー

    返事
    0
  • キャンセル返事