UUIDを挿入
- ページ: Macro/投稿
- 作者: みけCAT?
- カテゴリー: js
- 投稿日: 2015-02-13 (金) 23:05:42
メッセージ
乱数を使用してUUIDを生成し、挿入します。
インクルードガードなどで使用することを考え、標準以外の出力形式も設定できるようにしました。
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
| |
var isUpperCase = 0; var separator = "-"; var useBrackets = 0;
InsText(generateGUID(isUpperCase, separator, useBrackets));
function generateGUID(isUpperCase, separator, useBrackets) {
var time_low = randomBytesStr(4);
var time_mid = randomBytesStr(2);
var time_hi_and_version = byteToHex((randomByte() & 0x0f) | 0x40) + byteToHex(randomByte());
var clk_seq_hi_res = byteToHex((randomByte() & 0x3f) | 0x80);
var clk_seq_low = byteToHex(randomByte());
var node = randomBytesStr(6);
var guid = time_low + separator + time_mid + separator + time_hi_and_version + separator +
clk_seq_hi_res + clk_seq_low + separator + node;
if (useBrackets) guid = "{" + guid + "}";
if (isUpperCase) guid = guid.toUpperCase();
return guid;
}
function randomByte() {
return ~~(Math.random() * 256);
}
function byteToHex(number) {
var chars = "0123456789abcdef";
if (number < 0 || 0xff < number) return "XX";
return chars.charAt(number >> 4) + chars.charAt(number & 0xf);
}
function randomBytesStr(len) {
var ret = "";
for (var i = 0; i < len; i++) ret += byteToHex(randomByte());
return ret;
}
|