# Javascript Calculator Help while replacing operators at end

Hey I’m facing a issue while handling operators especially while replacing them.
Javascript Calculator

`-` sign after operator should not be treated as an operator but number and that creates quite a lot of confusion indeed. And to make you feel a little bit better, you’re not the only one who has this problem:

Explanation for those who is curious:
If you look behind just one step (peeking only the last token of the stack) following might occur:
`STEP / `: After digit so we have operator
`STEP - `: After operator, so it’s negative number here
`STEP . `: After minus sign, so we have `0.` decimal
… and here’s your bug

There is no easy fix for this and it’s actually quite a problem, because looking two elements back could create another more dangerous patterns.

UPDATE: No, actually bug is a next step and it’s really just a bug in Google’s calculator, silly me They forget to turn off operators after the dot `.` - it’s very easy to fix.

What about this?

Voila! I’ve done it!
"5+ -".replace(/[*/±]-\$/, “/”)
Try this in your console

if there is any operator and a negative operator replace it with the new input.

New input always being `"/"`? Not sure this is correct. Try this:

``````const switchOperatorRe = /[/*\-+]+\s*([/*+])/g;
const keepOperatorRe = /([/*\-+])\s*[/*+]+/g;

const handleChange = (value, strategy) => value
.replace(strategy === 'keep' ? keepOperatorRe : switchOperatorRe, '\$1');

const value = '4-+6/-67++-45+++45/-4-+1+/-3+-4-/-4';

console.log('KEEP: ', handleChange(value, 'keep'));
console.log('SWITCH: ', handleChange(value, 'switch'));
``````

It won’t solve case `-- => +`, for that your would need another handler, but I’m sure you will come with solution! Good luck!