JSFiddle - React, Tailwind, and code Playground

by Porfirio Chavez

HTML

<form method="post" name="sumar">

  <p>+Primer Numero:
    <input type="text" name="numero1" onKeyUp="fncSumar();format(this)" onchange="format(this)" />
  </p>
  <p>+ Segundo Numero:
    <input type="text" name="numero2" onKeyUp="fncSumar();format(this)" onchange="format(this)" />
  </p>
  <p>- Tercer Numero:
    <input type="text" name="numero3" onKeyUp="fncSumar();format(this)" onchange="format(this)" />
  </p>
  <p>Resultado:
    <input name="resultado" type="text" readonly />
  </p>
</form>

JavaScript

//---- SCRIPT SUMA Y RESTA EN CAMPOS--------
function fncSumar() {
  caja = document.forms["sumar"].elements;
  var numero1 = Number(caja["numero1"].value);
  var numero2 = Number(caja["numero2"].value);
  var numero3 = Number(caja["numero3"].value);
  resultado = numero1 + numero2 - numero3;
  if (!isNaN(resultado)) {
    caja["resultado"].value = numero1 + numero2 - numero3;
  }
}
//-----SCRIPT SEPARADOR DE MILES---------
function format(input) {
  var num = input.value.replace(/\,/g, '');
  if (!isNaN(num)) {
    num = num.toString().split('').reverse().join('').replace(/(?=\d*\.?)(\d{3})/g, '$1.');
    num = num.split('').reverse().join('').replace(/^[\,]/, '');
    input.value = num;
  }
  //-- ALERTA SOLO NUMEROS 
  else {
    alert('Solo se permiten numeros');
    input.value = input.value.replace(/[^\d\.]*/g, '');
  }
}