19 lines
500 B
JavaScript
19 lines
500 B
JavaScript
// https://www.codewars.com/kata/reverse-inside-parentheses-inside-parentheses/javascript
|
|
|
|
const reverseInParens = str => {
|
|
const rb = /[\[\]]/g;
|
|
const rm = /\([^\(\)]*\)/;
|
|
const mi = {'[':']', ']':'['};
|
|
const mc = {'[':'(', ']':')'};
|
|
let last;
|
|
while (last !== str) {
|
|
last = str;
|
|
str = str.replace(rm, s => {
|
|
s = s.substr(1, s.length-2).replace(rb, s => mi[s]);
|
|
return [']',...s,'['].reverse().join``;
|
|
});
|
|
}
|
|
str = str.replace(rb, s => mc[s]);
|
|
return str;
|
|
};
|