为了获得HTML5 / JavaScript学习经验,我想编写一个基本的计算器。我需要知道的第一件事是,在仅支持数字字符的输入类型方面有哪些选项,并且(如果可能)允许包含诸如+
和-
之类的运算符。最终结果将是使用户能够输入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 calculator: plus sign alternatives关于javascript - 用于数学输入的HTML5对象好吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17035884/