我有一个 <input type="number">
我想将用户的输入限制为纯数字或小数点后最多两位小数的数字。
基本上,我要求输入价格。
我想避免做正则表达式。有办法吗?
<input type="number" required name="price" min="0" value="0" step="any">
原文由 nubteens 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个 <input type="number">
我想将用户的输入限制为纯数字或小数点后最多两位小数的数字。
基本上,我要求输入价格。
我想避免做正则表达式。有办法吗?
<input type="number" required name="price" min="0" value="0" step="any">
原文由 nubteens 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果有人正在寻找只允许带有可选 2 位小数的数字的正则表达式
^\d*(\.\d{0,2})?$
例如,我发现下面的解决方案相当可靠
HTML:
<input name="my_field" pattern="^\d*(\.\d{0,2})?$" />
JS / 查询:
$(document).on('keydown', 'input[pattern]', function(e){
var input = $(this);
var oldVal = input.val();
var regex = new RegExp(input.attr('pattern'), 'g');
setTimeout(function(){
var newVal = input.val();
if(!regex.test(newVal)){
input.val(oldVal);
}
}, 1);
});
原文由 Weston Ganger 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答1.4k 阅读✓ 已解决
2 回答845 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
1 回答844 阅读✓ 已解决
2 回答764 阅读
1 回答736 阅读✓ 已解决
2 回答1.1k 阅读
而不是
step="any"
,它允许任意数量的小数位,使用step=".01"
,它允许最多两位小数。规范中的更多详细信息: https ://www.w3.org/TR/html/sec-forms.html#the-step-attribute