Вы можете использовать это регулярное выражение,
^[ '"]+|[ '"]+$|( ){2,}
И заменить его на $1
, где $1
захватывает один пробел, но в случае, когда есть два или более пробелов.
Здесь ^[ '"]+
соответствует любому пробелу, одинарной или двойной кавычке, одной или нескольким от начала строки, и аналогично [ '"]+$
также соответствует любому пробелу, одинарной или двойной кавычке, одной или нескольким в конце строки, и заменяется пустой строкой. где, когда ( ){2,}
совпадений, которые должны быть сопоставлены в середине строки, заменяется одним пробелом, захваченным в group1.
Regex Demo
Пример JS демо,
var arr = ["' TEST 123 '",'" TEST 123 "'];
for (s of arr) {
console.log(s + " --> " + s.replace(/^[ '"]+|[ '"]+$|( ){2,}/g,'$1'));
}