Hàm tính phương trình máy tính trong JavaScript. | How to get Javascript caluclator to do an equation like (1+2-3*4/5)?


Bài viết này sẽ hướng dẫn viết một chương trình tính toán kết quả bằng một chuỗi phương trình giống như excel(vd: =a+b*c-d/e) bằng cách sử dụng phương thức EVAL trong JavaScript.

Hàm - Function

function calculate(equation)
{

    var answer = 'err';

    if (equation.match(/^[0-9+\-*/(). ]*$/))
    {
        try
        {
            answer = equation != '' ? eval(equation) : '0';
        }
        catch (e)
        {
            //
        }
    }

    return answer;

}



Demo online:



Mã nguồn - Source:

<html>

<head>
<title>vnlives.net</title>
</head>

<script type="text/javascript">
function calculate(equation)
{
  // equation can have characters 0-9, +, -, *, /, (, ), . and spaces
  // If there are any other characters, return an error
 
  var answer = 'err';

  if (equation.match(/^[0-9+\-*/(). ]*$/))
  {
    try
    {
      answer = equation != '' ? eval(equation) : '0';
    }
    catch (e)
    {
      // Syntax error - Do nothing... answer remains 'err'
    }
  }
 
  return answer;
}
</script>

<body>

<form action="#" method="get">
<input name="equation" onkeypress="if ((window.event ? event.keyCode : event.which) == 13) { this.form.elements['answer'].value = calculate(this.value); }" size="30" type="text" value="" />
<input onclick="this.form.elements['answer'].value = calculate(this.form.elements['equation'].value);" type="button" value=" = " />
<input name="answer" size="10" type="text" value="" />
</form>

</body>

</html>




Write: +Bui Ngoc Son






No comments:

Post a Comment