我按了this链接,只允许输入类型为float的百分比值。 Here是原始的jsfiddle。
我试图替换正则表达式并使用此/^((0|[1-9]\d?)(\.\d{1,2})?|100(\.00?)?)$/
或此^([1-9]([0-9])?|0)(\.[0-9]{1,2})?$
,但是它不起作用。
编辑//在我的情况下,仅允许在0到100之间的浮点数
jsfiddle
var pastValue, pastSelectionStart, pastSelectionEnd;
$("input").on("keydown", function() {
pastValue = this.value;
pastSelectionStart = this.selectionStart;
pastSelectionEnd = this.selectionEnd;
}).on("input propertychange", function() {
var regex = /^((0|[1-9]\d?)(\.\d{1,2})?|100(\.00?)?)$/;
if (this.value.length > 0 && !regex.test(this.value)) {
this.value = pastValue;
this.selectionStart = pastSelectionStart;
this.selectionEnd = pastSelectionEnd;
}
});
最佳答案
您的问题是小数部分需要句号和数字同时显示。这很难键入;)
尝试/^(100(\.0{0,2})?|(\d|[1-9]\d)(\.\d{0,2})?)$/
。允许.
不带数字。
编辑:将re更改为不允许小数点为.00以上的100。
问候
关于javascript - 只允许输入 float 百分比值作为输入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32330196/