我似乎无法想象如果没有它过于复杂我怎么能做到。我知道我需要创建一个数组并循环遍历它并找到运算符(x& /),并且实现BEDMAS也很不错。
<div class="display"><input type="text" size="36" id="display" readonly></div>
<div class="keys">
<p>
<input type="button" class="button" value="CE" onclick='backspace()'>
<input type="button" class="button" value="x^2" onclick='power()'>
<input type="button" class="button" value="%" onclick='percentage("%")'>
<input type="button" class="button" value="/" onclick='math("/")'>
</p>
<p>
<input type="button" class="button" value="7" onclick='math("7")'>
<input type="button" class="button" value="8" onclick='math("8")'>
<input type="button" class="button" value="9" onclick='math("9")'>
<input type="button" class="button" value="x" onclick='math("*")'>
</p>
<p>
<input type="button" class="button" value="4" onclick='math("4")'>
<input type="button" class="button" value="5" onclick='math("5")'>
<input type="button" class="button" value="6" onclick='math("6")'>
<input type="button" class="button" value="-" onclick='math("-")'>
</p>
<p>
<input type="button" class="button" value="1" onclick='math("1")'>
<input type="button" class="button" value="2" onclick='math("2")'>
<input type="button" class="button" value="3" onclick='math("3")'>
<input type="button" class="button" value="+" onclick='math("+")'>
</p>
<p>
<input type="button" class="button" value="0" onclick='math("0")'>
<input type="button" class="button" value="." onclick='math(".")'>
<input type="button" class="button" value="C" onclick='c("")'>
<input type="button" class="button" value="=" onclick='e()'>
</p>
function c(val){
document.getElementById("display").value = val;
}
function math(val){
document.getElementById("display").value += val;
}
function e(){
try{
c(eval(document.getElementById("display").value))
}
catch(e){
c('Error')
}
}
function backspace() {
var value = document.getElementById("display").value
document.getElementById("display").value = value.substring(0, value.length
-1);
}
function power() {
var value = document.getElementById("display").value;
var value = document.getElementById("display").value = (value * value);
}
function percentage() {
var value = document.getElementById("display").value;
var value = document.getElementById("display").value = (value / 100);
}
答案 0 :(得分:1)
是的!不要重新发明这一点。使用内置表达式解析器的math.js之类的东西。
math.eval(/* put your concatenated expression here */)