如何使用angularJS为数字设置一个小数点

时间:2017-06-13 17:21:22

标签: javascript angularjs

我已经看到regExp的一些东西,但出于某种原因我认为这应该更简单。也许不吧。也许regExp完全符合这一点,我不明白这个概念。哪个,我没有。我不懂regExp,这就是为什么我没有使用它。

但我想要做的是使用AngularJS构建一个基本的计算器。我的计算器有一个ng-disable功能用于我的等号。因此,不允许按下它,直到单击leftOperand,operator和rightOperand才会起作用。 现在我不想在点击时禁用小数,因为我可能需要它为我的rightOperand。

但实质上我想让我的代码反映“如果有一个运算符,那么rightOperand是rightOperand +任何其他操作数输入。否则,leftOperand将等于leftOperand +任何其他操作数输入。(这是目前正在工作,例如333 + 45948594。小数也有效。但是!它可以允许333.464.6454,我不希望这样。)

尝试实施: 还是/和/或/如果将一个小数放入leftOperand,则leftOperand不允许使用其他小数。如果rightOperand有小数,则rightOperand不允许其他小数。

最简单的方法是什么?

https://codepen.io/tevon/pen/Moewba

这是我的setDecimal方法,但它允许右侧和左侧操作数超过1位小数

$scope.setDecimal = function (decimalEntered) {
        if ($scope.operator){
            $scope.rightOperand += decimalEntered;
        };
        else {$scope.leftOperand += decimalEntered;
        };

我给的是这样的东西:if string.indexOf('。')> -1 //然后做点什么 但老实说,我不知道如何处理“做某事”部分的工作,也不确定-1部分

不使用Jquery。

2 个答案:

答案 0 :(得分:1)

因此,您将操作数构建为字符串。这意味着您可以测试当前在示波器上的操作数,以查看它是否有使用.indexOf的点。

if(myVariable.indexOf('。')=== -1)myVariable + ='。';

答案 1 :(得分:0)

当你考虑indexOf时你是对的 - 你只需要停止执行这个方法,如果已经有点 - 那么最简单的方法是return

if ($scope.rightOperand.indexOf('.')>-1) return;

LINK