160
127

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

JavaScriptでユニークな文字列をさくっと生成する

Last updated at Posted at 2015-11-09

コード書いてるとたまに被らない値が必要なことがあります。

例えばDOMを生成する際にIDが必要だけど被らないようにしないといけない、ユーザ情報に利用する、など・・・

逆にいうとそういった時ぐらいにしか使わないので毎度忘れてしまいます。
そんなわけでメモっておきます。

※UUIDの仕様にそってないものはUUIDとして書くべきじゃない、という指摘があったので修正しました。

考え方

ユニークなIDをつくる時、乱数で生成すると被る可能性が若干あり、ちょっと不安です。

ユニークな文字列をさくっと作りたい時、Dateから生成すると被らない乱数を手軽に生成することができます。

ソース

getUniqueStr
function getUniqueStr(myStrong){
 var strong = 1000;
 if (myStrong) strong = myStrong;
 return new Date().getTime().toString(16)  + Math.floor(strong*Math.random()).toString(16)
}

マイクロ秒単位で乱数が変化するので大丈夫だと思うのですが、もし万が一かぶってしまった場合のことを考えて、念のため乱数を最後につけています。

使い方

シンプルです。乱数の桁を増やしたい場合は引数に値を指定します。

var uuid = getUniqueStr()

使いたいときにぺたっとどこかにはってもらえばと思います。

追記

いろんな人に読んでもらえるので typescript に書き換えたものを追記しておきます。


function getUniqueStr(myStrong?: number): string {
  let strong = 1000;
  if (myStrong) strong = myStrong;
  return (
    new Date().getTime().toString(16) +
    Math.floor(strong * Math.random()).toString(16)
  );
}
160
127
11

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
160
127

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?