JavaScript で 16進数 ランダム文字列を簡単に生成(CDN, npm)
はじめに
JavaScript で 16進数 ランダム文字列を簡単に生成する方法を調べた。
CDN を使う方法(chance.js)、npm からインストールする方法(crypto-random-string)についてまとめた。
TL;DR
- CDN なら chance.js
chance.string({length: 8, pool: '0123456789abcdef'})
- npm なら crypto-random-string
cryptoRandomString({length: 8})
目次
環境・条件
1 | $ sw_vers |
- chance v1.1.3 (CDN)
詳細
軽く調べた感じでは、CDN を使うなら chance.js、npm からインストールするなら crypto-random-string が良さそうだった。
chance.js
CDN から読み込んで利用できる。
jsDelivr など以外にも、公式サイトのものがある。
1 | <!-- jsDelivr --> |
ランダム文字列の生成には chance.string
を使う。
pool
オプションで利用可能な文字列を指定することで、16進数 ランダム文字列を生成できる。
1 | const randomStr = chance.string({ |
chance.js はその他にも、色々なランダム値を生成できる模様。
crypto-random-string
crypto-random-string も CDN(jsDelivr) はあるがブラウザで読み込んでも使えない。
ブラウザで使いたい場合は webpack とかでどうにかするしかなさそう。
インストールは下記。
1 | $ npm i crypto-random-string |
cryptoRandomString({length: x})
で、ランダム文字列を生成できる。
type
パラメータ(後述)もあるが、デフォルトで 16進数(type: 'hex'
) なので指定不要。
1 | const cryptoRandomString = require('crypto-random-string'); |
type オプション
type
で指定可能なのは、hex
, base64
, url-safe
の 3種類。
1 | cryptoRandomString({length: 8, type: 'base64'}); |
characters オプション
characters
で、使用可能な文字を指定可能。
1 | cryptoRandomString({length: 8, characters: 'abc'}); |
絵文字は文字化けしてしまうが、漢字やひらがなは問題なく利用できた。
1 | cryptoRandomString({length: 8, characters: '今日は良い天気ですね'}); |
その他の方法
他の方法は JavaScriptでお手軽にランダム文字列の生成 - Qiita に良くまとまってた。
最初に上記を見て、色々と細かいことを考慮すると面倒そうなので、ライブラリ調べたのがこの記事。
その他は下記あたりを見ると良さそう。
まとめ
- CDN なら chance.js
chance.string({length: 8, pool: '0123456789abcdef'})
- npm なら crypto-random-string
cryptoRandomString({length: 8})
参考文献
- Chance
- string - Chance
- chance - npm
- chance CDN by jsDelivr - A CDN for npm and GitHub
- crypto-random-string - npm
- JavaScriptでランダムな文字列を生成 | 酒と涙とRubyとRailsと
- JavaScriptでお手軽にランダム文字列の生成 - Qiita
- Javascriptでランダムな文字列を生成する方法 - Qiita
関連記事
- axios で添付ファイルありのリクエスト(multipart/form-data の POST)
- axios で unable to verify the first certificate の対応方法
- ブラウザで Node.js の Buffer を使う(CDN)
- Vue.js を使ってメインページ側で動作する Chrome 拡張機能を開発する方法
- webpack で Moment.js の不要な Locale を除去
- webpack & Babel を使って Chrome 拡張機能を開発するためのテンプレート(Hot Reload 付き)
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア