Сначала я сопоставлю все основные математические операторы, чтобы получить их порядок:
const operatorsArr = n.match(/\+|\-|\/|\*/g)
Затем разделим строку:
function posNeg() {
// hiddenText is a <input> element. This is not shown.
let n = hiddenText.value;
n = n.replace(/\+|\-|\/|\*/g, '|');
n = n.split('|');
console.log(n);
}
Затем у вас будетмассив чисел, в котором вы можете легко изменить последнее число:
n[n.lengh-1] *= -1;
Теперь мы можем объединить два массива вместе:
let newArr;
for (let i = 0; i < n.length; i++) {
newArr.push(n[i]);
if (operatorsArr[i]) newArr.push(operatorsArr[i]);
}
Наконец, вы можете воссоединиться с массивом всоздайте новую строку с разделителем по вашему выбору.В этом примере я использую пробел:
newArr = newArr.join(' ')
Пожалуйста, дайте мне знать, как это работает для вас.