У меня есть эти строки:
)hello(
this has ]some text[
flip }any{ brackets
even with )))]multiple[((( brackets
Как видите, все скобки не в том направлении.
Я хочу запустить функцию с именем flipBracketsDirection()
для каждой строки , поэтому результат будет следующим:
flipBracketsDirection(')hello(');
// should return: (hello)
flipBracketsDirection('this has ]some text[');
// should return: this has [some text]
flipBracketsDirection('flip }any{ brackets');
// should return: flip {any} brackets
flipBracketsDirection('even with )))]multiple[((( brackets');
// should return: even with ((([multiple]))) brackets
Примечание: это нормально, если направление всегда менялось. Так что это тоже нормально:
flipBracketsDirection('flip (it) anyway');
// should return: flip )it( anyway
Моя попытка:
function flipBracketsDirection(str: string) {
return str
// flip () brackets
.replace(/\(/g, 'tempBracket').replace(/\)/g, '(').replace(/tempBracket/g, ')')
// flip [] brackets
.replace(/\[/g, 'tempBracket').replace(/\]/g, '[').replace(/tempBracket/g, ']')
// flip {} brackets
.replace(/\{/g, 'tempBracket').replace(/\}/g, '{').replace(/tempBracket/g, '}')
;
}
Мне интересно, лучше ли это создать функцию?