如何使用 AngularJs 将字符串转换为数字?

angularjsweb developmentfront end technology

概述

使用 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() 方法,以便从中提取年龄和数字。


相关文章