10桁の適当な文字列を作りたい場合
やりかた
とりあえずMath.floor(Math.random() * charset.length)
を使えば、元々の文字列セットから適当に選んで作ってくれる。
const length = 10; const charset = 'abcdefghijklmnopqrstuvwxyz' + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + '0123456789'; let randomChar = ''; for(let i=0; i<length; i++) { randomChar += charset[Math.floor(Math.random() * charset.length)]; }
ランダム文字列の中に、どうしても含めたいパターンがある
例えば、a-z
、A-Z
、0-9
の各文字が最低1つは入ってないとダメとか
であれば、できあがった文字列に対して、正規表現&testメソッドを使ってbooleanで返却される複数の値がtrueであるかどうか確認するのがいい
const isIncluded = /[a-z]/.test(randomChar);
こんな感じで、他の条件も&&
で確認すればよい。
また、falseになった場合は、単純に再帰させればよい。上記を関数化(例ではmakeRandomChar
)させる.
return isIncluded ? randomChar : makeRandomChar();