JavaScript - 如何检查字符串是否仅包含数字?

仅包含数字的字符串意味着它完全由数字字符(0-9)组成,不包含任何其他字符或符号。让我们来看看几种不同的方法来检查字符串是否仅包含数字。

1. 使用正则表达式配合 test() 方法

检查字符串是否仅包含数字最有效的方法是使用正则表达式配合 test() 方法。此方法检查字符串是否匹配数字的模式。

let s = "123456";
let regex = /^\d+$/;

let res = regex.test(s);
console.log(res);

输出

true
  • ^ 断言字符串的开始。
  • \d+ 匹配一个或多个数字。
  • $ 断言字符串的结束。
  • INLINECODE796e4be1 方法在字符串仅包含数字时返回 INLINECODE9a50de94,否则返回 false

2. 使用 isNaN() 方法

我们可以使用 INLINECODEfb28f573 函数来检查一个值是否为 NaN(非数字)。如果一个字符串完全由数字组成,它将被转换为有效的数字,且 INLINECODE01b01449 将返回 INLINECODEaf5819f1。如果它包含数字以外的任何内容,它将返回 INLINECODEe48db779。

let s = "123456";

let res = !isNaN(s);
console.log(res);

输出

true
  • 如果 INLINECODE1b9d110f 不是数字,INLINECODE28fe9e68 返回 INLINECODE9d302685;如果它是有效数字,则返回 INLINECODE89938c0e。
  • ! 符号对结果取反,以检查字符串是否为有效数字。

3. 使用 Array.prototype.every() 配合 split()

我们可以结合使用 INLINECODE12b07267 方法和 INLINECODE0a6c3766 方法来检查字符串中的每个字符是否都是数字。此方法会检查字符串中的每个字符,并确保所有字符都是数字。

let s = "123456";

let res = s.split(‘‘).every(char =>
	char >= ‘0‘ && char <= '9');
console.log(res);

输出

true
  • split(‘‘) 将字符串拆分为单个字符的数组。
  • every() 检查数组中的每个字符是否都是介于 ‘0‘ 和 ‘9‘ 之间的数字。

4. 使用 parseInt() 方法

我们还可以使用 parseInt() 函数将字符串转换为数字,然后检查结果是否与原始字符串匹配。如果字符串包含数字以外的任何内容,转换结果将不匹配。

let s = "123456";

let res = parseInt(s) == s;
console.log(res);

输出

true
  • parseInt(s) 将字符串转换为整数。
  • 如果转换结果与原始字符串相同,则意味着字符串仅包含数字。

5. 使用 Number() 方法

Number() 方法也可用于将字符串转换为数字。如果字符串仅包含数字,它将返回一个有效的数字;否则,它将返回 NaN。

let s = "123456";

let res = !isNaN(Number(s));
console.log(res);

输出

true
  • Number(s) 尝试将字符串转换为数字。
  • isNaN() 检查结果是 NaN 还是有效的数字。

总结

  • 正则表达式 (^\d+$) 是检查纯数字字符串最简单、最高效的方法。
  • isNaN()Number() 方法适用于一般的数字验证。
  • split()every() 提供了一种更手动的方式,但在检查单个字符时仍然有效。
  • 对于大多数用例,由于其简洁性和可读性,首选正则表达式方法。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/46008.html
点赞
0.00 平均评分 (0% 分数) - 0