如何使除法符号在基本计算器的数字之间只出现一次
How to make the division sign only occur once between numbers for basic calculator?
我希望我的计算器除法符号在数字之间只显示一次,换句话说,无论我单击除法按钮多少次,我都希望除法符号出现一次,除非中间有数字,否则它应该只出现一次。
我想要:81/9/3不是:3///3//333
下面的乘法符号也是如此:
function divide() {
if (document.getElementById('btndiv').click = true) {
document.getElementById('TextAreaResultspace').value += '/';
}
}
function multiply(){
if (document.getElementById('btnx').click = true) {
document.getElementById('TextAreaResultspace').value += '*';
}
}
类似的东西(符号可以是您想要的任何字符):
var elem = document.getElementById('TextAreaResultspace');
var val = elem.value.trim()
// add symbol only if last character of text input is not a symbol
if(val[val.length-1] != symbol){
elem.value += symbol;
}
我把空白区三等分了,这样你也不允许出现类似"3///3"的内容。此处测试:http://jsfiddle.net/Y9wzY/1/
Andrei
更新:如何工作:
- elem变量被分配给结果的对象
- val变量被赋予elem的当前值,从中删除前导/尾随空白(通过调用trim方法)
- val.length是val中文本的长度,但第一个字符从0开始,所以最后一个字符在val.length-1位置。因此,val的最后一个字符是val[val.length-1]
- 如果val中的最后一个字符与您想要添加的字符不同,那么它会将其附加到elem.value中。否则,什么都不会发生
您可以检查TextAreaResultspace的最后一个字符是否是控制字符,如果不是,则只添加符号,也许这样的东西对您有用:
function divide() {
if (document.getElementById('btndiv').click = true) {
append_symbol('/');
}
}
var append_symbol = function(symbol){
var control_chars = ['*', '/', '-', '+']
, elem = document.getElementById('TextAreaResultspace');
// add symbol only if last character of text input is not a symbol
if(control_chars.indexOf(elem.value[elem.value.length-1]) === -1){
elem.value += symbol;
}
}
相关文章:
- Javascript返回值只在循环中返回一次
- Jquery FadeIn FadeOut 只工作一次
- Javascript html每点击一次就会更改url
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- jQuery滚动功能只工作一次
- 刷新导致我的帖子“;张贴“;再一次
- 引导程序崩溃一次只能看到一个
- 有没有一个抽象层,这样我就可以集成一次,然后使用pusher、pubnub或faye
- 加载器组件仅加载一次
- 根据Angular.JS上一次的内容禁用选择
- 一次又一次地在新的和相同的选项卡中打开一个url
- 只在宽度以下和宽度以上各准备一次
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- Angularjs:空对象,当只有一次点击时
- 如何使除法符号在基本计算器的数字之间只出现一次
- 每隔几分钟在页面之间切换一次
- 捕获一组两个特殊字符之间的所有内容,但允许角色在正文中出现一次
- Javascript时间在特定的一天2次之间,然后写开
- 自动滑动和子弹导航滑动之间的冲突(一次只有一个有效)