JavaScriptでランダム文字列を生成する

Windows環境でネットが使えない時に、CakePHPのSecurity.saltを考える必要があって作ったJSです。

ランダムで文字列を出力するJavaScript(英数編)


(function(){
var array = new Array();
for(var i = 0; i < 10; i++) { array.push(String.fromCharCode('0'.charCodeAt() + i)) } for(var i = 0; i < 26; i++) { array.push(String.fromCharCode('a'.charCodeAt() + i)) } for(var i = 0; i < 26; i++) { array.push(String.fromCharCode('A'.charCodeAt() + i)) } var str = ''; for(var i = 0; i < 50; i++) { str += array[Math.floor(Math.random() * 62)] } alert(str); })(); [/javascript] 英字(大文字、小文字)と数字のみで構成された、50文字のランダムな文字列がアラートで出力されます。

ランダムで文字列を出力するJavaScript(数字編)


(function(){
var array = new Array();
for(var i = 0; i < 10; i++) { array.push(String.fromCharCode('0'.charCodeAt() + i)) } var str = ''; for(var i = 0; i < 50; i++) { str += array[Math.floor(Math.random() * 10)] } alert(str); })(); [/javascript] こちらは数字だけ、CakePHPのSecurity.cipherSeed用ですね。

解説

タイプするのが面倒くさくて、生成元のa~z、A~Z、0~9の文字列をunicodeから作ってみました。
全部タイプした方が、読みやすいかもしれませんけど…まあ自己満足ですね(笑)

unicodeの取得は、StringのcharCodeAt()
unicodeから文字列に戻すのは、StringのfromCharCode()を使っています。

HTMLに張り付けて実行するもよし、Firebugなどのコンソールに張り付けて実行するもよし、どちらでも大丈夫です。
alertが嫌なら、console.log()に書き換えれば、各コンソールに出力されます。

まとめ

JavaScriptはコンソールで実行できるのでネット環境がなくても使えて便利ですよね!

結局ネットが使えないとこのブログも見れないので、このソースはEvernoteに保存してあるんですけど、紹介してみました!

コメントは受け付けていません。