サクラエディタ:
行選択してctrl押しながら別の行にドラッグするとコピーできる
大文字、小文字、数字で8文字のパスワード
ということは、混ぜたものがあるわけだから、
1.何がチェックされたか
2.チェックされたもののなかから、ランダムで
2-1 まず何の配列からもってくるか(大・小・数字・記号)
2-2 配列の何番目からもってくるか
3.たす
という流れかな?
1回出たからといって、もう一度使っていけないわけではないのが
トランプのカードとは違うところ。
→まず配列の用意の仕方をまちがえた。
全部の(小文字・大文字・数字・記号を)含んだ超長い配列を用意すべき(じゃないと複雑になりすぎる)
つまり2-1の仮定からおかしかった。
おおざっぱな枠はこうなる
var moji = ['a','b','c','d','e',//配列0から4までは小文字
'A','B','C','D','E',//配列5-9が大文字
'0','1','2','3','4',//配列10-14が数字
'!','#','$','&','?'];//配列15-20が記号。testで短め
$('#btn').on.('click',function(){
var passStr ="";//初期化
for (i=0; i<8; i++){//8回回す
passStr += moji[ran];
}
}
ランダムで文字を8回足しましょう
こういう形になる
--->pass.js(注意)
$(function(){
console.log('foo');
var moji = ['a','b','c','d','e',//配列0から4までは小文字
'A','B','C','D','E',//配列5-9が大文字
'0','1','2','3','4',//配列10-14が数字
'!','#','$','&','?'];//配列15-20が記号。testで短め
$('#btn').on('click',function(){
var passStr ="";//初期化
for (i=0; i<8; i++){//8回回す
var ran=Math.floor(Math.random()*moji.length);
passStr += moji[ran];
}
$('#pass').text(passStr);
});
});
ただ、これだと
①拡張性に弱い
②そのうえ小文字だけとかどーやって取り出すんだとか大変複雑になる
というわけで配列じゃなくて普通に「何文字目を取り出す」という形を使えば、単にながい文字列をもっていればいいということになる。
var moji1 = "abcde";//testで短めにしてある。本来26文字
var moji2 = "ABCDE";
var moji3 = "12345";
var moji4 = "!#$&?";
こういう文字列からランダムに取り出せばいいということになる
チェックボックスのon/offによって、この抽出元の文字列自体を足せばいいということか。ああなるほど。
つまりこうなる
--->pass.js
$(function(){
console.log('foo');
var moji1 = "abcde";//testで短め
var moji2 = "ABCDE";
var moji3 = "12345";
var moji4 = "!#$&?";
var moji = moji1+moji2+moji3+moji4;
console.log('moji is '+moji);
$('#btn').on('click',function(){
var passStr ="";//初期化すると同時に、これが文字列であると示す
for (i=0; i<8; i++){//8回回す
var ran=Math.floor(Math.random()*moji.length);
passStr += moji.charAt(ran);//何文字目か
}
$('#pass').text(passStr);
});
});
チェックボックスにチェックがはいっているかどうかはどうする?