【发布时间】:2018-02-01 04:43:37
【问题描述】:
我正在尝试制作一个 HTML 表单,该表单通过用户的输入字段接受评分。评级是从 0 到 10 的数字,我希望它最多保留两位小数。我正在尝试使用正则表达式,如下
function isRatingGood()
{
var rating = document.getElementById("rating").value;
var ratingpattern = new RegExp("^[0-9](\.[0-9][0-9]?)?$");
if(ratingpattern.test(rating))
{
alert("Rating Successfully Inputted");
return true;
}
else
{
return rating === "10" || rating === "10.0" || rating === "10.00";
}
}
但是,当我在字段中输入任何 4 或 3 位数字时,它仍然有效。它输出警报,所以我知道它是失败的正则表达式。 5 位数字不起作用。我使用this previous answer 作为基础,但它对我来说不能正常工作。
我目前的理解是表达式的开头应该是一个数字,然后可选地,一个小数位后跟1或2位数字应该被接受。
【问题讨论】:
-
为什么您需要精确到小数点后两位的评级?假设“评分”是“您如何享受我们的服务?”输入东西,谁会说“6.41”?
-
很好的问题。说实话,我没有,但我正在查看有两位小数的价格(显然)。这让我想到了如何使用正则表达式来表示评分的可选十进制表示。它对于评级系统没有实际用途,但当我想到它时,我正在处理我的 HTML 代码中的评级。我猜都是为了学习。
标签: javascript regex