JavaScript的转换GUID字符串格式转换成Base64编码 [英] Javascript convert GUID in string format into Base64
本文介绍了JavaScript的转换GUID字符串格式转换成Base64编码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在一个客户端,JavaScript的上下文。我有一个 GUID
字符串格式 e8b75aff-3422-4529-8a6a-15b33e674f48
,我需要它在的Base64
字符串 / 1q36CI0KUWKahWzPmdPSA ==
如何转换呢?
感谢。
解决方案
\r
\r\r
\r //转换GUID字符串BASE-64在Javascript\r
//由Mark SEECOF,2012-03-31\r
\r
VAR hexlist ='0123456789ABCDEF';\r
VAR b64list ='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 + /';\r
\r
// GUID字符串有四个破折号始终是MSB第一,\r
//但基64 GUID的靶系统字节序有所不同。\r
//小端系统中更为常见。设置乐==真\r
//当目标系统为小端(例如x86机器)。\r
//\r
功能guid_to_base64(克乐){\r
变种S = g.replace(/ [^ 0-9A-F] / IG,'').toLowerCase();\r
如果(s.length = 32!)返回'';\r
\r
如果(文件)S = s.slice(6,8)+ s.slice(4,6)+ s.slice(2,4)+ s.slice(0,2)+\r
s.slice(10,12)+ s.slice(8,10)+\r
s.slice(14,16)+ s.slice(12,14)+\r
s.slice(16);\r
S + ='0';\r
\r
变种一个,P,Q;\r
变种R ='';\r
变种I = 0;\r
而(ⅰγ-33){\r
一个=(hexlist.indexOf(s.charAt(ⅰ++))≤;&下; 8)|\r
(hexlist.indexOf(s.charAt(ⅰ++))≤; 4;)|\r
(hexlist.indexOf(s.charAt(ⅰ++)));\r
\r
p值= A>> 6;\r
Q = A和63;\r
\r
R + = b64list.charAt(P)+ b64list.charAt(Q);\r
}\r
R + ='==';\r
\r
返回ř;\r
} // guid_to_base64()\r
\r
//编辑\r
功能tryConversion(){\r
的document.getElementById(结果)。innerText属性= guid_to_base64(\r
的document.getElementById(input_guid)。价值,\r
的document.getElementById(cb_le)。检查\r
);\r
}
\r
输入[类型=文本] {\r
FONT-FAMILY:等宽;\r
字体大小:12像素;\r
宽度:270px;\r
}
\r
< DIV><标签=input_guid> GUID< /标签> <输入类型=文本MAXLENGTH =36ID =input_guidVALUE =83D95782-BDE4-466F-A490-46820D2B2CDC/>\r
< / DIV>\r
< DIV><标签=cb_le>小端<?/标签> <输入类型=复选框ID =cb_le检查=选中/>< / DIV>\r
<小时/>\r
< DIV><按钮的onclick =JavaScript的:tryConversion()>转换和LT; /按钮>< / DIV>\r
< DIV>结果:其中;跨度ID =结果>< / SPAN>< / DIV>
\r
I'm in a client-side, javascript context. I have a GUID
in string format e8b75aff-3422-4529-8a6a-15b33e674f48
and I need it in aBase64
string /1q36CI0KUWKahWzPmdPSA==
How do I convert it?
Thanks.
解决方案
// Convert GUID string to Base-64 in Javascript
// by Mark Seecof, 2012-03-31
var hexlist = '0123456789abcdef';
var b64list = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
// GUID string with four dashes is always MSB first,
// but base-64 GUID's vary by target-system endian-ness.
// Little-endian systems are far more common. Set le==true
// when target system is little-endian (e.g., x86 machine).
//
function guid_to_base64(g, le) {
var s = g.replace(/[^0-9a-f]/ig, '').toLowerCase();
if (s.length != 32) return '';
if (le) s = s.slice(6, 8) + s.slice(4, 6) + s.slice(2, 4) + s.slice(0, 2) +
s.slice(10, 12) + s.slice(8, 10) +
s.slice(14, 16) + s.slice(12, 14) +
s.slice(16);
s += '0';
var a, p, q;
var r = '';
var i = 0;
while (i < 33) {
a = (hexlist.indexOf(s.charAt(i++)) << 8) |
(hexlist.indexOf(s.charAt(i++)) << 4) |
(hexlist.indexOf(s.charAt(i++)));
p = a >> 6;
q = a & 63;
r += b64list.charAt(p) + b64list.charAt(q);
}
r += '==';
return r;
} // guid_to_base64()
//EDIT
function tryConversion() {
document.getElementById("result").innerText = guid_to_base64(
document.getElementById("input_guid").value,
document.getElementById("cb_le").checked
);
}
input[type=text] {
font-family: monospace;
font-size: 12px;
width: 270px;
}
<div><label for="input_guid">GUID</label> <input type="text" maxlength="36" id="input_guid" value="83D95782-BDE4-466F-A490-46820D2B2CDC" />
</div>
<div><label for="cb_le">Little-Endian?</label> <input type="checkbox" id="cb_le" checked="checked" /></div>
<hr />
<div><button onclick="javascript:tryConversion()">Convert</button></div>
<div>Result: <span id="result"></span></div>
这篇关于JavaScript的转换GUID字符串格式转换成Base64编码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文