Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

191
Vistas
using .substring after .replace is creating an error sometimes, how could I properly structure the substring so that it always works?

I'm getting an error with my code below. I am trying to make a calculator, and I am using strings as input and typecasting in order to solve. The calculator was working fine, but now I am trying to add an ans button to allow for having equations based on previous answer. I am having an issue with the substrings now, and in equations where ans comes first like 'ans+88" I get NaN as a result and 88 turns into undefined. But when I switch the substring parameters it messes it up for other types of equations as described in the comments below.

link to repository

else if(equation.indexOf("+") != -1){
//this finds the the index of +
                let pInd = equation.indexOf("+")
               
        /*before I added this, it worked properly, firstValue would get the firstvalue
        secondvalue would get the second value and it added correctly
        the point of the if statement is to replace ans with props.prevResult which is 
       the previous answer from the previous entered equation. After it replaces it 
       removes the whitespace*/
                if(equation.includes("ᴀɴs")){
                   equation =  equation.replace(/ᴀɴs/gi, String(props.prevResult))
                  //my attempt to remove whitespace since i thought it might be the issue
                   // but now I'm pretty sure the issue is with substring.
                   equation = equation.replace(/\s/g, '')
                }
                equation = String(equation)
                firstVal = equation.substring(0,pInd)
                //this line is where the error seems to come from
                secondVal = equation.substring(pInd+1,equation.length)
                /* when ans is first such as in 'ans + 9" 9 becomes undefined ans stays 
                correct. I tried replacing it with pInd+1, equation.length-1, but that 
               made it so that equations like '9+ans' were cut short, 
               and regular ('1+55') equations also broke.*/

                result = parseFloat(firstVal)+parseFloat(secondVal) 
                props.setInput(result)
                props.setPrevResult(result)
                setResultGot(true)
            }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

The solution @james gave solved the issue, the position of the + sign was obviously going to change after I replaced ans, so that line just had to be moved to after the replacement, silly mistake, I appreciate the help.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda