' P '

whatever I will forget

Javascript ランダムな文字列を作成する

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-zA-Z0-9の各文字が最低1つは入ってないとダメとか
であれば、できあがった文字列に対して、正規表現&testメソッドを使ってbooleanで返却される複数の値がtrueであるかどうか確認するのがいい

const isIncluded = /[a-z]/.test(randomChar);

こんな感じで、他の条件も&&で確認すればよい。

また、falseになった場合は、単純に再帰させればよい。上記を関数化(例ではmakeRandomChar)させる.

return isIncluded ? randomChar : makeRandomChar();