Macro/投稿/232

http://sakura.qp.land.to/?Macro%2F%C5%EA%B9%C6%2F232


Top > Macro > 投稿 > 232

UUIDを挿入

  • ページ: Macro/投稿
  • 作者: みけCAT?
  • カテゴリー: js
  • 投稿日: 2015-02-13 (金) 23:05:42

メッセージ

乱数を使用してUUIDを生成し、挿入します。 インクルードガードなどで使用することを考え、標準以外の出力形式も設定できるようにしました。

fileinsert_uuid.js
  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
// UUIDを挿入
 
// ----------- 設定ここから -----------
 
var isUpperCase = 0; // アルファベットを大文字にするか
var separator = "-"; // データの間に挿入する文字列
var useBrackets = 0; // {}で囲むか
 
// ----------- 設定ここまで -----------
 
/* 設定例
 *
 * ce3af079-aa1f-45ce-959c-2807c12da6dd (RFCで規定された形式)
 *   isUpperCase = 0, separator = "-", useBrackets = 0
 *
 * {4C86CF8E-E748-4756-A5BB-E3A3BC6C83EC}
 *   isUpperCase = 1, separator = "-", useBrackets = 1
 *
 * F95FBEDD_9B04_4DCD_B3D8_75045BE83681
 *   isUpperCase = 1, separator = "_", useBrackets = 0
 */
 
InsText(generateGUID(isUpperCase, separator, useBrackets));
 
// http://www.ietf.org/rfc/rfc4122.txt
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;
}


URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

添付ファイル: fileinsert_uuid.js 145件 [詳細]

リロード   新規 編集 凍結 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2015-02-13 (金) 23:09:38 (1255d)