我们在开发时可能需要找到只包含数字而不包含任何其他字符的字符串。最简单的检查方法是解析字符串中的数字并将其长度与原始字符串的长度进行比较。如果两者相同,则意味着该字符串仅包含数字。用户可以使用parseInt()方法来解析字符串中的数字。
但是,在本教程中,我们将学习其他方法来检查 JavaScript 中的字符串是否仅包含数字。
使用 for 循环和 CharCodeAt() 方法
我们可以使用 for 循环遍历字符串。我们可以使用索引值和 charCodeAt() 方法来获取字符串中的每个字符,以获取其 ASCII 值。之后,我们可以将字符的 ASCII 值与数字的 ASCII 值进行比较,得出该字符是数字还是非数字字符。
语法
用户可以按照以下语法检查字符串是否仅包含数字。
立即学习“Java免费学习笔记(深入)”;
function isOnlyDigits(string) { for (let i = 0; i 57) { return false; } } return true;}
登录后复制
在上面的语法中,我们为每个字符串字符执行 charCodeAt() 方法。
步骤
步骤 1 – 使用 for 循环迭代字符串。
步骤 2 – 使用 charCodeAt() 方法获取字符的 ASCII 值,该字符位于字符串中的第 i 个索引处
步骤 3 – 检查索引 ith 处的字符的 ASCII 值是否在 48 到 57 之间。如果不是,则表示它是非数字字符并返回 false。
步骤 4 – 如果 for 循环的迭代完成,并且函数没有找到任何非数字字符,则返回 true,表示字符串仅包含数字。
示例
在下面的示例中,我们采用两个仅包含数字和混合字符的字符串。用户可以观察输出结果,它根据只包含数字或非数字的字符串在网页上打印消息。
Using the for-loop and charCodeAt() method to check if string contains only digits
let output = document.getElementById("output"); function isOnlyDigits(string) { for (let i = 0; i < string.length; i++) { var ascii = string.charCodeAt(i); if (ascii 57) { output.innerHTML += "The " + string + " contains non-digits characters also.
"; return false; } } output.innerHTML += "The " + string + " contains only digits characters also.
"; return true; } isOnlyDigits("122135567343"); isOnlyDigits("df32d23");
登录后复制
使用 Number() 构造函数
在 JavaScript 中,Number 是一个对象,我们可以使用它的构造函数来创建它的实例。我们可以传递一个值作为 Number() 构造函数的参数,以用数字值初始化变量。
我们还可以将数字字符串作为 Number() 构造函数的参数传递。它解析数字并返回数字值。如果我们传递包含非数字字符的字符串,它将返回 NaN 值。
语法
用户可以使用下面的语法来使用 Numberconstructor()来检查字符串是否仅包含数字。
let num = Number(string1);if (num != NaN) { // contains non-digit numbers}else{ // contains only digits.}
登录后复制
在上面的语法中,string1是一个包含数字和非数字字符的字符串。如果 Number() 构造函数返回 NaN,则字符串包含非数字字符;否则,它返回数值。
示例
在下面的示例中,string1 仅包含数字。我们将它作为 Number() 构造函数的参数传递,用户可以看到它在输出中返回实际的数值而不是 NaN。
Using the Number() constructor method to check if string contains only digits let output = document.getElementById("output"); let string1 = "3433454646"; let num = Number(string1); if (num != NaN) { output.innerHTML += "The " + string1 + " Contains only digits!
"; } else { output.innerHTML += "The " + string1 + " Contains non-digits characters!
"; }
登录后复制
使用正则表达式
在本节中,我们将创建一个正则表达式,可用于将非数字字符匹配到字符串中。如果我们找到非数字字符的任何单个匹配,我们可以说该字符串也包含非数字字符。
语法
用户可以按照下面的语法使用正则表达式来检查字符串是否只包含数字。
let regex = /D/;let bool = regex.test(str);if (bool) { // contains non-digits } else { // contains only digits}
登录后复制
上面的语法中使用了 test() 方法来将正则表达式模式与字符串进行匹配。
如果字符串包含任何非数字字符,test() 方法将返回 true。
正则表达式解释
D – 用于匹配任何单个非数字字符。
我们还可以将“g”标志与正则表达式一起使用来匹配所有出现的非数字字符,但我们足以知道字符串仅包含一个非数字字符。
示例
在此示例中,当用户单击按钮时,isContainsDigits() 函数具有不同的字符串参数。此外,用户可以使用不同的字符串观察 test() 方法的输出。
Using the regular expression method to check if string contains only digits
let output = document.getElementById("output"); let regex = /D/; function isContainsDigits(str) { let bool = regex.test(str); if (bool) { output.innerHTML += "The " + str + " Contains non-digits!
"; } else { output.innerHTML += "The " + str + " Contains only digits characters!
"; } }
登录后复制
我们学习了三种不同的方法来检查字符串是否仅包含数字。用户可以使用 Number() 构造函数通过一个线性代码来执行任务。
以上就是JavaScript 中如何检查字符串是否只包含数字?的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2693565.html