在 typescript 中将字符串转换为数字
在 typescript 中使用 number()
对象将字符串转换为数字,例如 const num1 = number(str)
。 当用作函数时,number(value)
将字符串或其他值转换为数字。 如果该值无法转换,则返回 nan(不是数字)。
const str = '1234';
// 👇️ const num1: number
const num1 = number(str);
console.log(num1); // 👉️ 1234
// 👇️ const num2: number
const num2 = str;
console.log(num2); // 👉️ 1234
我们使用 number 函数将字符串转换为数字。
我们传递给函数的唯一参数是我们想要转换为数字的值。
我们可能还会看到开发人员使用一元加号 ( ) 运算符将字符串转换为数字。
const str = '1234';
const num2 = str;
console.log(num2); // 👉️ 1234
它实现了与 number
函数相同的目标,但可能会使不熟悉一元加号 ( ) 运算符的代码读者感到困惑。
添加数字时应避免使用一元加号 ( ) 运算符,因为它会使我们的代码看起来很奇怪。
const str = '1234';
const num2 = 6 str;
console.log(num2); // 👉️ 1240
第一个加号是加法运算符,第二个加号用于将字符串转换为数字。
这两种方法都有正确的类型,并允许 typescript 推断变量存储了一个数字。
即使我们将不存储有效数字的字符串传递给 number
函数,我们也会得到 nan(不是数字)值,它也是数字类型。
console.log(typeof nan); // 👉️ "number"
如果我们尝试使用 number 函数或一元加号 ( ) 运算符将不是有效数字的字符串转换为数字,我们将返回一个 nan(不是数字)值。
const str = '1234test';
const num1 = number(str);
console.log(num1); // 👉️ nan
const num2 = str;
console.log(num2); // 👉️ nan
在这种情况下,我们应该使用 parseint()
或 parsefloat()
函数。
就像函数名称所暗示的那样,parseint
将字符串转换为整数,而 parsefloat
转换为浮点数。
使用 parseint 或 parsefloat 将字符串转换为数字
使用 parseint()
函数将字符串转换为数字,例如 const num1 = parseint(str)
。 parseint
函数将要解析的值作为参数,并返回从提供的字符串解析的整数。
const str = '1234.5test';
// 👇️ const num1: number
const num1 = parseint(str);
console.log(num1); // 👉️ 1234
// 👇️ const num2: number
const num2 = parsefloat(str);
console.log(num2); // 👉️ 1234.5
我们传递给 parseint
函数的唯一参数是我们想要转换为整数的字符串。
第二个示例使用 parsefloat
函数将字符串转换为浮点数。
typescript 能够将变量的类型推断为数字,因为即使 nan 的类型也是数字。
需要注意的是,如果字符串的第一个非空白字符不能转换为数字,则 parseint()
和 parsefloat()
函数将返回 nan(不是数字)。
const str = 'test1234.5test';
const num1 = parseint(str);
console.log(num1); // 👉️ nan
const num2 = parsefloat(str);
console.log(num2); // 👉️ nan
parseint()
和 parsefloat()
函数能够解析字符串中的数字,如果字符串以有效数字开头,但是如果字符串的第一个非空白字符不能转换为数字,则方法短路返回 nan。
如果我们遇到这种情况,需要使用 replace()
方法从字符串中提取一个数字。
从 typescript 中的字符串中提取数字
要在 typescript 中从字符串中提取数字,请调用 replace()
方法,例如 str.replace(/\d/g, '')
并将结果传递给 number()
函数。 replace()
方法会将所有非数字字符替换为空字符串并返回结果。
const str = 'hello 1234 world';
// 👇️ const replaced: string
const replaced = str.replace(/\d/g, '');
console.log(replaced); // 👉️ "1234"
let num: number | undefined;
if (replaced !== '') {
num = number(replaced);
}
// 👇️ let num: number | undefined
console.log(num); // 👉️ 1234
该示例使用 string.replace
方法将字符串中的所有非数字字符替换为空字符串。
这有效地从字符串中删除了所有非数字字符。
我们必须处理的一个极端情况是 - 如果字符串根本不包含数字,那么我们将留下一个空字符串。
将空字符串转换为数字会返回 0,这可能不是我们想要的。
// 👇️ 0
console.log(number(''));
这就是为什么我们将 num
变量的类型设置为 number | undefined 并且如果被替换的变量不存储空字符串,我们只会将变量设置为数字。
如果我们确定应用程序中的字符串将包含至少一个数字,或者wine 吧的用例可以将空字符串转换为 0,则可以稍微简化一下。
const str = 'hello 1234 world';
// 👇️ const replaced: string
const replaced = str.replace(/\d/g, '');
console.log(replaced); // 👉️ "1234"
// 👇️ const num: number
const num = number(replaced);
console.log(num); // 👉️ 1234
我们传递给 replace()
方法的第一个参数是我们要在字符串中匹配的正则表达式,第二个参数是每个匹配项的替换(空字符串)。
\d
字符匹配不是数字的字符。
我们添加了 g(全局)标志来匹配所有非数字字符并将它们替换为空字符串。
这意味着如果字符串只包含非数字字符,我们会将它们全部替换为空字符串,并且
string.replace
方法将返回一个空字符串。
请注意,
string.replace
方法返回一个新字符串,它不会改变原始字符串。 字符串在 javascript 中是不可变的。
仅当 parseint()
和 parsefloat()
函数不足时才应使用此方法,因为尽可能利用内置函数总是更好。
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
在 angularjs 中设置 select from typescript 的默认选项值
发布时间:2023/04/14 浏览次数:132 分类:angular
-
本教程提供了在 angularjs 中从 typescript 中设置 html 标记选择的默认选项的解释性ag捕鱼王app官网的解决方案。
在 angular 中使用 typescript 的 getelementbyid 替换
发布时间:2023/04/14 浏览次数:259 分类:angular
-
本教程指南提供了有关使用 typescript 在 angular 中替换 document.getelementbyid 的简要说明。这也提供了在 angular 中 getelementbyid 的最佳方法。
在 typescript 中使用 try..catch..finally 处理异常
发布时间:2023/03/19 浏览次数:385 分类:typescript
-
本文详细介绍了如何在 typescript 中使用 try..catch..finally 进行异常处理,并附有示例。
在 typescript 中使用 declare 关键字
发布时间:2023/03/19 浏览次数:254 分类:typescript
-
本教程指南通过特定的实现和编码示例深入了解了 typescript 中 declare 关键字的用途。
在 typescript 中 get 和 set
发布时间:2023/03/19 浏览次数:962 分类:typescript
-
本篇文章演示了类的 get 和 set 属性以及如何在 typescript 中实现它。
在 typescript 中格式化日期和时间
发布时间:2023/03/19 浏览次数:269 分类:typescript
-
本教程介绍内置对象 date() 并讨论在 typescript 中获取、设置和格式化日期和时间的各种方法。
在 typescript 中返回一个 promise
发布时间:2023/03/19 浏览次数:586 分类:typescript
-
本教程讨论如何在 typescript 中返回正确的 promise。这将提供 typescript 中 returns promise 的完整编码示例,并完整演示每个步骤。
在 typescript 中定义函数回调的类型
发布时间:2023/03/19 浏览次数:1445 分类:typescript
-
本教程说明了在 typescript 中为函数回调定义类型的ag捕鱼王app官网的解决方案。为了程序员的方便和方便,实施了不同的编码实践指南。
在 typescript 中把 json 对象转换为一个类
发布时间:2023/03/19 浏览次数:521 分类:typescript
-
本教程演示了如何将 json 对象转换为 typescript 中的类。