Daft
Daft

Reputation: 10964

Split string at every occurrence of character, but keep character in new array

If I have a string which looks like this:

 let oldString = '[foo faa] [faaaa] [feee foo] [fu]';

How can I split it to return the following:

let newArr = ['[foo faa]','[faaaa]','[feee foo]','[fu]'];

So I would like to split it at every ']' character, but keep to that character in the new array.

I've tried oldString.split(']') but it does not return the array in the shape I was expecting.

Upvotes: 4

Views: 734

Answers (2)

cangokceaslan
cangokceaslan

Reputation: 482

You can find the answer below.

let oldString = '[foo faa] [faaaa] [feee foo] [fu]';
let newStringArr = oldString.split(" ").join(',').replace(/\],\[/gi, "],d[").split(",d")
console.log(newStringArr);

document.write(JSON.stringify(newStringArr))

Upvotes: 0

Nina Scholz
Nina Scholz

Reputation: 386550

You could match the parts with the left and right delimiter.

let string = '[foo bar] [faaaa] [feee] [fu]',
    array = string.match(/\[[^\]]+\]/g);

console.log(array);

Upvotes: 6

Related Questions