对于 HTML5/JavaScript 学习体验,我想编写一个基本的计算器。我需要知道的第一件事是在输入类型方面有哪些仅支持数字字符的选项,并且(如果可能)允许包含诸如+
and之类的运算符-
。最终结果将是用户能够输入 的值范围内的字符0-9
,以及{+, -, /, *, ... }
。
有没有什么东西是天生适合这种东西的,或者至少可以调整到那种性质的东西?
对于 HTML5/JavaScript 学习体验,我想编写一个基本的计算器。我需要知道的第一件事是在输入类型方面有哪些仅支持数字字符的选项,并且(如果可能)允许包含诸如+
and之类的运算符-
。最终结果将是用户能够输入 的值范围内的字符0-9
,以及{+, -, /, *, ... }
。
有没有什么东西是天生适合这种东西的,或者至少可以调整到那种性质的东西?
这是使用和正则表达式的简单计算器eval
:
HTML:
<input type="text" id="calc">
<button id="calculate">Calculate</button>
JavaScript:
var input = document.querySelector('#calc')
, button = document.querySelector('#calculate');
// Only allow numbers and operators
input.addEventListener('keypress', function(e) {
var key = String.fromCharCode(e.which);
if (!/[0-9+\-/*]+/.test(key)) e.preventDefault();
});
button.addEventListener('click', function() {
alert(input.value +' = '+ eval(input.value));
});
演示:http: //jsbin.com/utujas/1/edit
有人说eval
是邪恶的,但对于一个简单的计算器来说没问题,否则你不得不求助于这样的东西:javascript 计算器:加号替代品