forked from TheAlgorithms/JavaScript
- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGenerateGUID.js
More file actions
Latest commit
20 lines (18 loc) · 721 Bytes
/
Copy pathGenerateGUID.js
File metadata and controls
20 lines (18 loc) · 721 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/*
Generates a UUID/GUID in Node.Js.
The script uses `Math.random` in combination with the timestamp for better randomness.
The function generate an RFC4122 (https://www.ietf.org/rfc/rfc4122.txt) version 4 UUID/GUID
*/
exportconstGuid=()=>{
constpattern='xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
letcurrentDateMilliseconds=newDate().getTime()
returnpattern.replace(/[xy]/g,(currentChar)=>{
constrandomChar=(currentDateMilliseconds+Math.random()*16)%16|0
currentDateMilliseconds=Math.floor(currentDateMilliseconds/16)
return(
currentChar==='x' ? randomChar : (randomChar&0x7)|0x8
).toString(16)
})
}
// > Guid()
// 'edc848db-3478-1760-8b55-7986003d895f'