如何使用 AngularJs 将字符串转换为数字?
概述
使用 AngularJs 将字符串类型值转换为数字类型值非常容易,因为它具有内置函数,例如 parseInt()、parseFloat()(它们将字符串类型的数字转换为数字类型)以及 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 中添加带有"ng-app"定义和"ng-controller"的 div 元素,并在其中插入表达式变量。
<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() 方法,以便从中提取年龄和数字。

