Reputation: 10964
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
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
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