计算器介绍:只能进行加减乘除,提示用户输入数字,正则表达式限制用户只能输入数字(在用户输入时限制),如果出现除零操作答案为0;
有两种针对不同运算符的解决方法:
1. 使用eval() 函数 //函数参考http://www.w3school.com.cn/jsref/jsref_eval.asp
result=eval(num1+op+num2) //可以不用考虑操作符,要对 除零 操作特别的处理下即可。
【特别说一下,在php中出现eval()要特别注意(一句话木马),更多信息自行Google。】
2.使用switch进行比对,见代码。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>2014***'s web site homework</title>
<script type="text/javascript">
function calculator(){
var nums = document.getElementsByName("num");
var op = document.getElementsByName("op");
var result = document.getElementsByName("rs");
var n1 = parseFloat(nums[0].value);
var n2 = parseFloat(nums[1].value);
switch(op[0].value){
case "add" : result[0].value = n1 + n2 ;break;
case "min" : result[0].value = n1 - n2 ;break;
case "mul" : result[0].value = n1 * n2 ;break;
case "div" : result[0].value = (n2==0?0:n1/n2); break;
}
}
</script>
</head> <body>
<input type="text" name="num" onclick="if(this.value == '请输入要计算的第一个数字')this.value =' ';" value="请输入要计算的第一个数字" onkeyup="value=value.replace(/[^\d]/g,'') " />
<select name="op" size="1">
<option value="add">+</option>
<option value="min">-</option>
<option value="mul">*</option>
<option value="div">/</option>
</select>
<input type="text" name="num" onclick="if(this.value == '请输入要计算的第二个数字')this.value =' ';" value="请输入要计算的第二个数字" onkeyup="value=value.replace(/[^\d]/g,'') " />
<input type="submit" onclick="calculator()" value="=" />
<input type="text" name="rs" value="这里显示您的结果" disabled/>
</body>
</html>