首页 > 解决方案 > 如何在 JavaScript 中使用开始和结束分隔符拆分字符串?

问题描述

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

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

我正在使用它来切割包装的末端,所以如果我得到:

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

我的输出是:

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

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

<<da<<data>> 

而且我无法回复最后一条数据消息,我想用 begin"<<"和 end剪切">>",并在两者之间获取数据。

标签: node.jssocketsstreampipe

解决方案


您可以为此使用 RegExp。

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


推荐阅读