Javascript byte数组转string实现过程的疑问
时间: 2020-05-29来源:博客园
前景提要
Javascript byte数组转string实现过程的疑问
0 悬赏园豆: 30 [待解决问题] 网上常见的方法是下面这种。
下面var one = arr[i].toString(2)是把byte值转为二进制串,下面那个match匹配的是什么意思呢。如果我的byte值为1001 0100
这里面的v =one.match(/^1+?(?=0)/)出来的结果又是啥。各位知道的麻烦帮忙看下哈。十分感谢~~~~
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;
} js javascript 前端 wumengchao1234 | 初学一级 | 园豆: 65
提问于:2020-05-29 19:25 显示帮助
使用"Ctrl+Enter"可进行快捷提交,评论支持部分 Markdown 语法:[link](http://example.com) _italic_ **bold** `code`。
< > 分享
分享您的问题
所有回答(2) 0 匹配开头为1的字符可多个 且后面要跟着0 如果str = 1001 0100 那匹配1 zzhenxiang | 园豆:225 (菜鸟二级) | 2020-06-03 14:29 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 ^1+?(?=0)表达式意思是从第一个1到第一个0,一共有几个1,所以1001 0100经过v = one.match(/^1+?(?=0)/);返回的v=1; Java·小白 | 园豆:353 (菜鸟二级) | 2020-06-08 09:14 编辑文本 预览 上传图片
Ctrl+Enter键快速提交
清除回答草稿
您需要 登录 以后才能回答,未注册用户请先 注册 。

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行