如何在 JavaScript 中验证十进制数?
在本教程中,我们将学习如何在 JavaScript 中验证十进制数。
包含小数点 (.) 的数字称为十进制数。介于两个整数之间的数字称为十进制数。我们在计算、进度条、接受表单输入等中使用十进制数。
正则表达式是用于验证目的的知名实体。正则表达式是具有特定含义的字符搜索模式,用于验证数据。它可以用于任何字符串或数字。我们将在 JavaScript 中将其用于验证目的。
我们使用 if 语句的简单逻辑来验证 JavaScript 中的十进制数。我们在 if 语句中使用了 indexOf() 方法来验证数据。因此,让我们看看如何在 JavaScript 中验证十进制数。
以下是我们在 JavaScript 中验证十进制数使用的方法
- 使用 match() 方法
- 使用正则表达式
使用 match() 方法验证十进制数
要验证 JavaScript 中的十进制数,请使用 match() 方法。它在将字符串与正则表达式匹配时检索匹配项。
语法
str.match( re );
这里 str 是字符串形式的数字,re 是用于验证字符串 str 中数字的正则表达式。
示例
您可以尝试运行以下代码来验证十进制数。
<html> <body> <script> var str = "1.5"; var re = /^[-+]?[0-9]+\.[0-9]+$/; var found = str.match( re ); document.write("decimal" ); </script> </body> </html>
使用正则表达式验证十进制数
正则表达式是验证数据的字符模式。它们是模式和修饰符的配对。模式包含它们要搜索的字符或字符范围,并用反斜杠 (/) 括起来。修饰符指定搜索行为;它可能是忽略匹配大小写或多行字符串。
语法
我们可以按照以下语法使用正则表达式来验证 JavaScript 中的十进制数:
var decimal= <Decimal number here>; var regex= /^[-+]?[0-9]+\.[0-9]+$/; var isValidated=decimal.test(regex);
参数
[-+] - 查找括号内的任何字符。
[0-9] - 表示 0 到 9 的范围。
^ - 从字符串开头匹配表达式。它匹配任何字符。
? - 使其他表达式可选。
$ - 从末尾匹配字符串。
. - 查找单个字符。
test() - 将字符串与表达式匹配并返回布尔值。
示例
在示例中,我们使用了正则表达式来检查用户输入的数字是否为十进制数。
<html> <head> <style> #Number, #para { color: red; } </style> </head> <body> <h2>Using <i>regular expression</i> to validate decimal numbers</h2> <label for = "Number"> Decimal Number:</label> <input type = "number" id = "Number" value = "0.0"/> <button id = "btn">submit</button> <p id = "para"></p> <script> document.getElementById("btn").addEventListener("click", regularexp); function regularexp() { var value = document.getElementById("Number").value; var regex = /^[-+]?[0-9]+\.[0-9]+$/; var isValidated = regex.test(value); if (isValidated) { document.getElementById("para").innerHTML = "Given number is a decimal number"; } else { document.getElementById("para").innerHTML = "Given number is not a decimal number"; } } </script> </body> </html>
在上面的示例中,用户可以看到我们使用了正则表达式来验证 JavaScript 中的十进制数。
使用 if-else 语句验证十进制数
JavaScript 中有条件语句,例如 if 或 if-else 语句。这些语句包含一个代码块,如果指定条件变为真,则执行该代码块;否则,将执行 false 语句。
我们使用了 indexOf() 方法来检查数字中是否存在小数点。如果存在,它不应该在第一位。
用户可以按照以下语法使用正则表达式来验证十进制数。
语法
var number =; var array=number.split(''); if(array.indexOf(".") >= 0){ //The number is a decimal number } else{ //The number is not a decimal number }
您可以按照上述语法验证十进制数。
示例
在下面的示例中,我们使用了 indexOf() 方法作为 if 语句的条件。以下程序检查程序是否包含两个十进制数。我们将数字转换为数字数组并搜索小数点,它应该存在于数组索引大于 0 的数字中。
<html> <head> <style> #Number, #para { color: green; } </style> </head> <body> <h2>Using <i>if statement</i> to validate decimal numbers</h2> <label for = "Number">Decimal Number:</label> <input type = "number" id = "Number" value = "0.0" /> <button id = "btn">submit </button> <p id="para"></p> <script> document.getElementById("btn").addEventListener("click", regularexp); function regularexp() { var number = document.getElementById("Number").value; var array=number.split(''); if(array.indexOf(".") >= 0){ document.getElementById("para").innerHTML = "Decimal Number"; } else{ document.getElementById("para").innerHTML = "NOT Decimal Number"; } } </script> </body> </html>
在上面的示例中,用户可以看到我们检查了数字并对其进行了验证。数字在小数点后只能有两个数字。
在本教程中,我们学习了在 JavaScript 中验证十进制数的不同方法。