我按了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/

10-14 13:35
查看更多