如何在AngularJs中将字符串转换为数字?
概述
使用AngularJs将字符串类型值转换为数字类型值很容易,因为它具有内置函数,例如**parseInt()**、**parseFloat()**,它们可以将数字字符串类型转换为数字类型,以及Angular的**“isNumber()”**函数,可以交叉检查给定数据是否已转换为数字。例如,如果一个数字是十进制字符串类型,我们将使用parseFloat()函数将字符串转换为数字;否则,如果我们必须转换不带小数的数字,我们将使用parseInt()函数。
语法
这里使用的语法是:
var num = parseInt(“String here...”); angular.isNumber( num );
在上面给出的语法中,字符串值作为参数传递给parseInt()方法。“angular.isNumber()”检查上面转换后的数字是数字类型还是字符串类型。
算法
**步骤1** - 在你想要的代码编辑器中创建一个HTML页面,添加AngularJs的内容分发网络(CDN)链接,以便在你的网页上获得AngularJs的功能。
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
**步骤2** - 在HTML中添加div元素,带有“ng-app”定义和“ng-controller”,在其内插入表达式变量。
<div ng-app="myApp" ng-controller="myController"> String: {{a}} <br /> String converted to number: {{output}} </div>
**步骤3** - 创建Angular模块和控制器,在其中定义变量,如下例所示。
**步骤4** - 使用parseInt()函数将给定的字符串转换为数字。
**步骤5** - 使用isNumber()函数进行检查,如果给定值是数字类型,则返回true,否则返回false。
示例1
在这个例子中,一个给定的字符串类型值将使用**parseInt()**函数(AngularJs中的一个预构建函数)转换为数字类型。然后,为了检查该值是否已转换,我们使用**isNumber()**函数。
<html> <head> <title>Convert String to Number using AngularJs</title> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script> </head> <body> <h2>Using parseInt()</h2> <div ng-app="myApp" ng-controller="myController"> String: {{a}}<br /> String converted to number: {{output}} ({{outputNum}}) </div> <script> var app = angular.module("myApp", []); app.controller("myController", ($scope) => { $scope.a = "82.25"; $scope.outputNum = parseInt($scope.a); $scope.output = angular.isNumber($scope.outputNum); }) </script> </body> </html>
因此,从上面的例子中,由于“82.25”作为字符串存储在$scope.a变量中,然后它作为参数传递给parseInt()函数。parseInt()返回一个不带小数的数字类型值。这个值传递给isNumber()函数,因为我们已经将字符串值转换为了数字,所以isNumber()将返回true。
示例2
在这个例子中,我们将使用**parseFloat()**方法将字符串类型值转换为数字类型,并将使用Angular的**isNumber()**方法来检查转换后的值是否是数字类型。
<html> <head> <title>Convert String to Number using AngularJs</title> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script> </head> <body> <h2>Using parseFloat()</h2> <div ng-app="myApp" ng-controller="myController"> String: {{a}}<br /> String converted to number: {{output}} ({{outputNum}}) </div> <script> var app = angular.module("myApp", []); app.controller("myController", ($scope) => { $scope.a = "82.25"; //decimal value of String type $scope.outputNum = parseFloat($scope.a); $scope.output = angular.isNumber($scope.outputNum); }) </script> </body> </html>
在这个例子中,给定了一个十进制字符串值,因此我们使用了parseFloat()函数将字符串值转换为数字类型的十进制值。然后通过将该值传递给isNumber()来检查该数字,因为解析该值后它返回数字类型,所以它将返回true。
结论
在parseInt()函数中,如果数字写在单词之后,例如:“Hello 80”,那么parseInt()将返回“NaN”作为输出。isNumber()的返回类型是布尔值,当传递给函数的值是数字类型时,它将返回true,否则将返回false。上述解决方案在许多情况下都很有帮助,例如,在一个应用程序中,用户输入句子,他必须从中提取个人的年龄和出生年份,因此我们将把给定的字符串类型句子解析为parseInt()方法,以便从中提取年龄和数字。