如何在第二个位置限制零

use*_*953 3 html javascript jquery input

在下面的代码中,文本框在起始位置限制为零.但我想在第一个位置只允许一个零但不超过一个.这是一个例子

例如: - 0.1012400 ==>正确

000.4545000 ==>不正确

0154 ==>正确

00154 ==>不正确

$('input#abc').keypress(function(e){ 
 if (this.selectionStart == 0 && (e.which == 48 || e.which == 46 )){
      return false;
   }
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="abc">
Run Code Online (Sandbox Code Playgroud)

Tem*_*fif 7

您可以简单地测试一开始是否有2个连续零,如果是,则删除一个:

$('input#abc').on('keypress keydown keyup',function(e){ 
 var v = $(this).val();
 if(v.length >=2 && v[0]=='0' && v[1]=='0') {
    $(this).val(v.substring(1));
 }
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="abc">
Run Code Online (Sandbox Code Playgroud)

UPDATE

如果你想在开始时考虑减号,这是一个代码:

$('input#abc').on('keypress keydown keyup', function(e) {
  var v = $(this).val();
  if (v.length >= 2 && v[0] == '0' && v[1] == '0') {
    $(this).val(v.substring(1));
  } else if (v.length >= 3 && v[0] == '-' && v[1] == '0' && v[2] == '0') {
    $(this).val('-' + v.substring(2));
  }
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="abc">
Run Code Online (Sandbox Code Playgroud)