Javascript string to Guid
Cleanest way?
Shortest:
var txt = shift.employee.id;
txt.replace(/([0-z]{8})([0-z]{4})([0-z]{4})([0-z]{4})([0-z]{12})/,"$1-$2-$3-$4-$5");
//"79820548-6e95-4fa8-80a0-b366e6725f71"
or if you don't care about the acceptable characters, it can be be even shorter (and cleaner):
txt.replace(/(.{8})(.{4})(.{4})(.{4})(.{12})/,"$1-$2-$3-$4-$5"); //boom!
Some don't like using regex for everything, but I liked it.
You could use an regular expression:
var rxGetGuidGroups = /(\w{8})(\w{4})(\w{4})(\w{4})(\w{12})/,
employeeId = shift.employee.id.replace(rxGetGuidGroups, '$1-$2-$3-$4-$5');
jsFiddle
I did it in string manipulation
var str = "798205486e954fa880a0b366e6725f71";
var parts = [];
parts.push(str.slice(0,8));
parts.push(str.slice(8,12));
parts.push(str.slice(12,16));
parts.push(str.slice(16,20));
parts.push(str.slice(20,32));
var GUID = parts.join('-');
console.log(GUID) // prints expected GUID
I did it this way because I don't like inserting characters between strings. If there is any problem tell me.
Or you could use a for
loop like bellow
var str = "798205486e954fa880a0b366e6725f71";
var lengths = [8,4,4,4,12];
var parts = [];
var range = 0;
for (var i = 0; i < lengths.length; i++) {
parts.push(str.slice(range,range+lengths[i]));
range += lengths[i];
};
var GUID = parts.join('-');
console.log(GUID);