javascript - Prevent an arithmetic operator from immediately following another one -


i have written calculator script allows me type invalid input values 5*****5. such inputs (where 1 arithmetic operator *, + etc follows another) should restricted because make no sense. how can modify code restrict such inputs?

function c(val) {    var1 = $("#bar").val(val);  }    function v(val) {    var2 = $("#bar").val($("#bar").val() + val);  }    function equal() {    var3 = c(eval($("#bar").val()));  }    function reset() {    var4 = $("#bar").val("");  }    $(document).ready(function() {    $("#backspace").click(function() {      var barvalue = $("#bar").val();      $("#bar").val(barvalue.substring(0, barvalue.length - 1));    });  });
<p>    <input type="text" id="bar" size="15" readonly>    <input type="button" value="c" onclick="reset('')">  </p>  <p>    <input type="button" value="←" id="backspace">    <input type="button" value="­" onclick="">    <input type="button" value="­" onclick="">    <input type="button" value="­" onclick="">    <input type="button" value="­" onclick="">  </p>  <p>    <input type="button" value="7" onclick="v('7')">    <input type="button" value="8" onclick="v('8')">    <input type="button" value="9" onclick="v('9')">    <input type="button" value="/" onclick="v('/')">    <input type="button" value="­" onclick="">  </p>  <p>    <input type="button" value="4" onclick="v('4')">    <input type="button" value="5" onclick="v('5')">    <input type="button" value="6" onclick="v('6')">    <input type="button" value="*" onclick="v('*')">    <input type="button" value="­" onclick="">  </p>  <p>    <input type="button" value="1" onclick="v('1')">    <input type="button" value="2" onclick="v('2')">    <input type="button" value="3" onclick="v('3')">    <input type="button" value="-" onclick="v('-')">    <input type="button" value="­" onclick="">  </p>  <p>    <input type="button" value="0" onclick="v('0')">    <input type="button" value="." onclick="v('.')">    <input type="button" value="+" onclick="v('+')">    <input type="button" value="=" onclick="equal()" id="equal">    <input type="button" value="­" onclick="">  </p>  <div id="history"></div>

here jsfiddle link full source.

use regular expressions. test see if last value +,-,*,or /

if lastchar matches criteria , passed value not anything.

function v(val) {     var patt = /\+|\-|\*|\//     var barvalue = $("#bar").val();     var lastchar = barvalue.substring(barvalue.length, barvalue.length - 1);     if (patt.test(lastchar) && patt.test(val)) {         //do nothing current val , lastchar mathematical characters     } else {         //update formula         var2 = $("#bar").val($("#bar").val() + val);     } } 

Comments

Popular posts from this blog

javascript - Google App Script ContentService downloadAsFile not working -

javascript - Function overwritting -

c# - Exception when attempting to modify Dictionary -