
javascript 字节数组转换为字符串的实现过程探究
在 javascript 中,有一种常见的方法可以将字节数组转换为字符串。如下所示:
function byteToString(arr) {
if(typeof arr === 'string') {
return arr;
}
var str = '',
_arr = arr;
for(var i = 0; i < _arr.length; i++) {
var one = _arr[i].toString(2),
v = one.match(/^1+?(?=0)/);
if(v && one.length == 8) {
var bytesLength = v[0].length;
var store = _arr[i].toString(2).slice(7 - bytesLength);
for(var st = 1; st < bytesLength; st++) {
store += _arr[st + i].toString(2).slice(2);
}
str += String.fromCharCode(parseInt(store, 2));
i += bytesLength - 1;
} else {
str += String.fromCharCode(_arr[i]);
}
}
return str;
}
登录后复制
对于 v = one.match(/^1+?(?=0)/); 这行代码,^1+?(?=0) 表达式从第一个 1 到第一个 0 之间匹配连续 1 的数量。
例如,对于字节值 1001 0100:
立即学习“”;
- 转换后的二进制字符串 one 为 1111101000000000。
- one.match(/^1+?(?=0)/) 返回 11111,表示从第一个 1 到第一个 0 有 5 个连续 1。
- 因此,v 等于 5。
以上就是JavaScript 字节数组如何转换为字符串?的详细内容,更多请关注米云其它相关文章!
