Как разделить строку с разделителями начала и конца в JavaScript? - PullRequest
0 голосов
/ 01 июня 2018

У меня есть 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 голосов
/ 01 июня 2018

Вы можете использовать RegExp для этого.

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