Disable zero as first letter in <input>

前端 未结 7 1322
無奈伤痛
無奈伤痛 2021-02-08 19:51

Below code disables 0 as the first character in #foo.
However, you can bypass this by typing 123, then drag to select 123

7条回答
  •  迷失自我
    2021-02-08 20:22

    I would handle the input, propertychange, and paste events. Then use regex to match for anything that begins with 0 and replace the current value with the value minus the leading 0.

    http://jsfiddle.net/SeanWessell/5qxwpv6h/

    $('input ').on('input propertychange paste', function (e) {
        var val = $(this).val()
        var reg = /^0/gi;
        if (val.match(reg)) {
            $(this).val(val.replace(reg, ''));
        }
    });
    

    Bug fix reported by Kevin/Updated per recommendations of canon:

    http://jsfiddle.net/SeanWessell/5qxwpv6h/2/

    $('input').on('input propertychange paste', function (e) {
        var reg = /^0+/gi;
        if (this.value.match(reg)) {
            this.value = this.value.replace(reg, '');
        }
    });
    

提交回复
热议问题