亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

原生JavaScript生成GUID的實現示例

2019-11-20 14:10:25
字體:
來源:轉載
供稿:網友

  GUID(全局統一標識符)是指在一臺機器上生成的數字,它保證對在同一時空中的所有機器都是唯一的。通常平臺會提供生成GUID的API。生成算法很有意思,用到了以太網卡地址、納秒級時間、芯片ID碼和許多可能的數字。GUID的唯一缺陷在于生成的結果串會比較大。

  GUID的格式為:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

  大家都知道GUID在前端開發中用處不大,但如果需要插入某個ID,并且這個ID與后臺對應等其它需要GUID的操作時,為了方便,我們還是可以生成一個GUID的。

  一般在sql、java、C#等后臺或數據庫語言中生成GUID都很簡單,而前端沒有直接生成GUID的方法,只能自己手寫一個。但由于GUID需要獲取以太網卡的地址、以及納秒級的時間等數字。而前端獲取到這些信息比較困難(知道的童鞋請一定告訴我),而我們可以模擬實現生成GUID,代碼如下:

/*
* 功能:生成一個GUID碼,其中GUID以14個以下的日期時間及18個以上的16進制隨機數組成,GUID存在一定的重復概率,但重復概率極低,理論上重復概率為每10ms有1/(16^18),即16的18次方分之1,重復概率低至可忽略不計*/

function GUID() {this.date = new Date();/* 判斷是否初始化過,如果初始化過以下代碼,則以下代碼將不再執行,實際中只執行一次 */if (typeof this.newGUID != 'function') {/* 生成GUID碼 */GUID.prototype.newGUID = function() {this.date = new Date();var guidStr = '';sexadecimalDate = this.hexadecimal(this.getGUIDDate(), 16);sexadecimalTime = this.hexadecimal(this.getGUIDTime(), 16);for (var i = 0; i < 9; i++) {guidStr += Math.floor(Math.random()*16).toString(16);}guidStr += sexadecimalDate;guidStr += sexadecimalTime;while(guidStr.length < 32) {guidStr += Math.floor(Math.random()*16).toString(16);}return this.formatGUID(guidStr);}/** 功能:獲取當前日期的GUID格式,即8位數的日期:19700101* 返回值:返回GUID日期格式的字條串*/GUID.prototype.getGUIDDate = function() {return this.date.getFullYear() + this.addZero(this.date.getMonth() + 1) + this.addZero(this.date.getDay());}/** 功能:獲取當前時間的GUID格式,即8位數的時間,包括毫秒,毫秒為2位數:12300933* 返回值:返回GUID日期格式的字條串*/GUID.prototype.getGUIDTime = function() {return this.addZero(this.date.getHours()) + this.addZero(this.date.getMinutes()) + this.addZero(this.date.getSeconds()) + this.addZero( parseInt(this.date.getMilliseconds() / 10 ));}/** 功能: 為一位數的正整數前面添加0,如果是可以轉成非NaN數字的字符串也可以實現* 參數: 參數表示準備再前面添加0的數字或可以轉換成數字的字符串* 返回值: 如果符合條件,返回添加0后的字條串類型,否則返回自身的字符串*/GUID.prototype.addZero = function(num) {if (Number(num).toString() != 'NaN' && num >= 0 && num < 10) {return '0' + Math.floor(num);} else {return num.toString();}}/* * 功能:將y進制的數值,轉換為x進制的數值* 參數:第1個參數表示欲轉換的數值;第2個參數表示欲轉換的進制;第3個參數可選,表示當前的進制數,如不寫則為10* 返回值:返回轉換后的字符串*/GUID.prototype.hexadecimal = function(num, x, y) {if (y != undefined) {return parseInt(num.toString(), y).toString(x);} else {return parseInt(num.toString()).toString(x);}}/** 功能:格式化32位的字符串為GUID模式的字符串* 參數:第1個參數表示32位的字符串* 返回值:標準GUID格式的字符串*/GUID.prototype.formatGUID = function(guidStr) {var str1 = guidStr.slice(0, 8) + '-',str2 = guidStr.slice(8, 12) + '-',str3 = guidStr.slice(12, 16) + '-',str4 = guidStr.slice(16, 20) + '-',str5 = guidStr.slice(20);return str1 + str2 + str3 + str4 + str5;}}}

GUID 對象

只需要將其保存在一個JS文件中并引用即可。

  然后我們只需要

  var guid = new GUID();

  alert(guid.newGUID()); 

  即可獲取GUID碼。

  實現原理很簡單,這里只是采用了系統時間與18個以上的十六進制隨機數組成,并用系統時間轉換為十六進制,這樣雖然還是有可能重復,但是重復的概率極低,可忽略不計。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精选在线观看| 成人激情视频在线| 九九久久久久99精品| 国产精品劲爆视频| 4438全国成人免费| 国产精品免费久久久| 欧美亚洲一区在线| 97婷婷涩涩精品一区| 久久亚洲私人国产精品va| 国产999视频| 国内伊人久久久久久网站视频| 日韩av网址在线观看| 18久久久久久| 日韩精品免费看| 久久免费在线观看| 国产欧美日韩精品丝袜高跟鞋| 精品国产欧美成人夜夜嗨| 日韩美女免费观看| 国产精品久久久久久久久免费| 久久久久久久久中文字幕| 亚洲天堂精品在线| 日韩中文字幕久久| 国产精品极品尤物在线观看| 91久久国产综合久久91精品网站| 欧美日韩免费在线| 欧美日韩激情网| 中文字幕久热精品视频在线| 亚洲国产精品高清久久久| 欧美精品九九久久| 欧美亚洲在线视频| 91精品久久久久久久| 国产亚洲欧美aaaa| 国产欧美日韩中文| 欧美怡红院视频一区二区三区| 91精品国产综合久久香蕉| 上原亚衣av一区二区三区| 正在播放欧美一区| 亚洲国产欧美日韩精品| xxxxx成人.com| 精品国产一区二区三区久久久狼| 成人黄色在线免费| 欧美综合在线第二页| 国产精品久久久久aaaa九色| 久久99精品国产99久久6尤物| 精品毛片网大全| 欧美日韩亚洲精品一区二区三区| 亚洲另类欧美自拍| 久久久女人电视剧免费播放下载| 国产精品自产拍在线观看中文| 免费不卡在线观看av| 亚洲一区中文字幕| …久久精品99久久香蕉国产| 97香蕉超级碰碰久久免费软件| 国产91热爆ts人妖在线| 久久精品在线视频| 色噜噜亚洲精品中文字幕| 夜夜狂射影院欧美极品| 欧美在线视频一区| 亚洲欧美激情一区| 亚洲va久久久噜噜噜| 久久亚洲精品国产亚洲老地址| 久久影视电视剧免费网站清宫辞电视| 热久久这里只有精品| 欧美黑人国产人伦爽爽爽| 国产日韩欧美中文| 一区二区三区视频免费在线观看| 欧美国产日韩精品| 欧美福利视频在线观看| 国产一区二区三区高清在线观看| 38少妇精品导航| 中文字幕亚洲综合久久筱田步美| 国外成人免费在线播放| 欧美主播福利视频| 欧美中在线观看| 亚洲理论电影网| 91国产精品91| 在线看福利67194| 欧美黄色片视频| 日韩高清av一区二区三区| 国产成人+综合亚洲+天堂| 成人妇女免费播放久久久| 国产精品视频yy9099| 久久久久久久999精品视频| 久久久在线视频| 亚洲香蕉伊综合在人在线视看| 国产精品一区av| 亚洲黄色成人网| 欧美专区在线播放| 日韩成人高清在线| 欧美插天视频在线播放| 亚洲综合色激情五月| 日韩欧美在线国产| 全亚洲最色的网站在线观看| 精品自拍视频在线观看| 青青a在线精品免费观看| 国产不卡一区二区在线播放| 亚洲精品国产电影| 欧美日韩国产综合新一区| 日本一区二区三区在线播放| 亚洲成人黄色网| 欧美精品videos| 一区二区亚洲精品国产| 日韩成人av网址| 亚洲综合成人婷婷小说| 韩国一区二区电影| 国产精品免费观看在线| 久久久久久久香蕉网| 久久人人爽人人爽爽久久| 欧美日韩在线另类| 日韩视频免费在线观看| 久久精品一区中文字幕| 日本道色综合久久影院| 亚洲天堂日韩电影| 国产欧美精品一区二区三区介绍| 亚洲综合在线做性| 国产亚洲a∨片在线观看| 欧美老女人bb| 亚洲视频在线免费观看| 国产欧美久久一区二区| 超碰精品一区二区三区乱码| 中文字幕精品国产| 91手机视频在线观看| 97成人在线视频| 日韩视频免费在线观看| xxxxxxxxx欧美| 国产精品99久久久久久白浆小说| 亚洲电影天堂av| 久青草国产97香蕉在线视频| 91久久综合亚洲鲁鲁五月天| 91po在线观看91精品国产性色| 68精品久久久久久欧美| 亚洲成avwww人| 亚洲男女性事视频| 97久久国产精品| 亚洲人成亚洲人成在线观看| 日韩欧美成人精品| 国产日本欧美一区二区三区在线| 日韩在线观看免费全集电视剧网站| 日韩精品免费看| 夜夜嗨av一区二区三区免费区| 中文字幕在线看视频国产欧美| www.日韩视频| 国产精品中文久久久久久久| 亚洲国产精品女人久久久| 久久国产精品视频| 色偷偷噜噜噜亚洲男人的天堂| 国产精品亚洲视频在线观看| 亚洲福利视频在线| 国产成人一区二区三区小说| 国产91色在线| 亚洲午夜av久久乱码| 一区二区三区美女xx视频| 欧美大成色www永久网站婷| 国产精品久久久久久五月尺| 懂色aⅴ精品一区二区三区蜜月| 亚洲欧美日韩区| 色综合视频一区中文字幕| 国产精品无码专区在线观看| 亚洲第一精品电影| 国产精品久久久久久av| 国产主播喷水一区二区| 国产精品va在线播放| 亚洲色图狂野欧美| 中文字幕精品—区二区|