正如标题所说,我需要验证输入中输入的数字是否适合百分比。我正在尝试使用正则表达式来做到这一点,但到目前为止我无法让它正常工作。例如,当输入不带小数的数字时,它告诉我它是不正确的,它是一个有效的百分比值。
我认为允许的值:
- 匹配 100、100.0 和 100.00
- 0、15、99、3.1、21.67 等数字
,
, 字母或任何其他类型的字符不应被允许。只是数字和一个点。最多只能精确到小数点后 2 位。
我设法构建和使用的正则表达式是:
(^100(\.0{1,2})?$)|(^([1-9]([0-9])?|0)(\.[0-9]{1,2})?$)
这是代码的一个小示例:
function checkValue(){
var strporc = document.getElementById("txt_porcentaje").value
var isValid = strporc.match(/^(100(\.0{1,2})?|([0-9]?[0-9](\.[0-9]{1,2})))$/) == null ? false:true;
console.log("Permitido: "+isValid);
}
<label for="txt_porcentaje">Porcentaje:</label>
<input type="text" id="txt_porcentaje" oninput="checkValue();">
提前感谢您的帮助!
这是工作代码:
我希望它对你有帮助。
运气!