Было несколько попыток. Возникает вопрос: хотите ли вы иметь фактические GUID или просто случайные числа, которые выглядят как GUID?
function guid() {
function s4() {
return Math.floor((1 + Math.random()) * 0x10000)
.toString(16)
.substring(1);
}
return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();
}
Однако обратите внимание, что такие значения не являются подлинными GUID.
Невозможно генерировать реальные GUID в Javascript, потому что они зависят от свойства локального компьютера, которые браузеры не раскрывают. Вам нужно будет использовать службы, специфичные для ОС, такие как ActiveX: http://p2p.wrox.com/topicindex/20339.htm
Изменить: неверно - RFC4122 позволяет случайным образом («версия 4»). См. Другие ответы для специфики.
Примечание: предоставленный фрагмент кода не соответствует RFC4122, который требует, чтобы версия (4
) была интегрирована в сгенерированную выходную строку. Не используйте этот ответ, если вам нужны соответствующие GUID.
Использование:
var uuid = guid();
function guid() {
return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
s4() + '-' + s4() + s4() + s4();
}
function s4() {
return Math.floor((1 + Math.random()) * 0x10000)
.toString(16)
.substring(1);
}
document.getElementById('jsGenId').addEventListener('click', function() {
document.getElementById('jsIdResult').value = guid();
})
input { font-family: monospace; }