如何在JavaScript中使用开始和结束分隔符拆分字符串?

时间:2018-06-01 14:25:52

标签: node.js sockets stream pipe

我有一个tcp套接字,包含"<<"包的开头和包">>"的结尾,所以我的数据是"<< data >>"

let stream = socket.pipe(split('>>'));
stream.on('data', (data) => { /*do something with data*/ };

我用这个来削减包的结尾,所以如果我得到:

<<data>><<data>><<data>> 

我的输出是:

['<<data','<<data','<<data']

但有时我的套接字会收到:

<<da<<data>> 

我无法回复最后一条数据消息,我想切换为开始"<<"并结束">>",并获取数据。

1 个答案:

答案 0 :(得分:0)

您可以使用RegExp。

&#13;
&#13;
const strP = "<<data<<<<data>>";
let tempResult;
const regExp = RegExp('<<(\\w+)(>>|<<)', 'g');
while ((tempResult = regExp.exec(strP)) !== null) {
    console.log(`Package data: ${tempResult[1]}`);
}
&#13;
&#13;
&#13;

相关问题