JSFiddle - React, Tailwind, and code Playground
HTML
<pre id="out"></pre>
JavaScript
function foo(str) {
const groupA = '1234567890 .';
const result = [];
let chunk = '';
str.split('').forEach((char, i) => {
if (groupA.includes(char)) {
chunk += char;
} else {
if (chunk.length) {
result.push(chunk);
chunk = '';
}
result.push(char);
}
});
if (chunk.length) {
result.push(chunk);
}
return result;
}
// test
const control = ['5 ', '/', '(', '2', '-', ' 3', ')', '*', ' 1.333333 ', '+ ', '-', '11 '];
const str = '5 /(2- 3)* 1.333333 + -11 ';
out.textContent = control.join('|') + '\n' + foo(str).join('|');