javascript ランダムな文字列を指定した桁数生成する
- 作成日 2021.01.18
- 更新日 2022.08.03
- javascript
- javascript
javascriptで、Math.randomメソッドを使用して、ランダムな文字列を指定した桁数生成するサンプルコードを記述してます。
環境
- OS windows10 pro 64bit
- Apache 2.4.43
- ブラウザ chrome 103.0.5060.134
ランダムな文字列生成
ランダムな文字列は1文字であれば、以下のコードで生成することができます。
let str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
console.log(str[~~(Math.random() * str.length)]);
// ビット否定演算子(~~)を使用で、小数の切り捨てを行えます
これを指定した回数繰り返せば、指定した文字数でランダムに文字列を生成することが可能です。
let str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
let randstr = '';
let n = 10; // 繰り返し回数
for(let i=0; i<n; i++){
randstr += str[~~(Math.random() * str.length)];
}
console.log(randstr);
実行結果
アルファベットのみにする場合は、数値を消して下さい。
let str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
ひらがなや漢字も可能です。
let str = "あいうえお亜依兎絵御";
let randstr = '';
let n = 10; // 繰り返し回数
for(let i=0; i<n; i++){
randstr += str[~~(Math.random() * str.length)];
}
console.log(randstr);
実行結果
また、上記のコードは「for文」を使用せずに1行で記述することもできます。
let str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
let randstr = '';
[...Array(10)].forEach(() => randstr += str[~~(Math.random() * str.length)])
console.log(randstr);
サンプルコード
以下は、
「実行」ボタンをクリックすると、10回、0.1秒ごとにランダムな文字列を生成して表示する
サンプルコードとなります。
※cssには「bootstrap5」を使用してます。「bootstrap5」は、IEのサポートを終了してます。関数はアロー関数を使用してます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>mebeeサンプル</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/5.0.0-alpha1/css/bootstrap.min.css">
</head>
<style>
.main {
margin: 0 auto;
margin-top: 200px;
display: flex;
flex-direction: column;
align-items: center;
font-size: 30px;
}
</style>
<script>
const hoge = () => {
// ランダムで選ばれる文字
let str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
// タイマーの設定
const write = setInterval(() => {
// str からランダムに一文字生成して10文字になれば終了
(result.innerHTML.length < 10) ? result.innerHTML += str[~~(Math.random() * str.length)] : clearInterval(write);
}, 100); // 0.1秒ごとに実行
}
window.onload = () => {
// クリックイベントを登録
btn.onclick = () => { hoge(); }; // document.getElementById('btn');を省略
}
</script>
<body>
<div class="main container">
<h2><span id="result" class="badge bg-primary"></span></h2>
<div class="row">
<button id="btn" type="button" class="btn btn-warning">
実行
</button>
</div>
</div>
</body>
</html>
ランダムな文字列が生成されていることが確認できます。
-
前の記事
複数のスクリーンサイズで表示確認できる「Responsively App」の使い方 2021.01.18
-
次の記事
rails6 APIデータを取得して表示する 2021.01.18
コメントを書く