防止用户在javascript小数点前输入3个以上的数字

时间:2014-01-07 06:10:58

标签: javascript php jquery html decimal

在PHP文本字段中:防止用户在小数点前输入3个以上的数字 例如:

如果用户输入123.12可接受, 如果用户输入12.12也可以接受, 但如果用户输入1234.12则不可接受。

请检查这个小提琴: http://jsfiddle.net/S6uky/


HTML:

<form method="post">
    <div class="row">
        <label>Val 1</label>
        <input type="text" class="validate" name="val1" maxlength="5"/>
    </div>
    <div class="row">
        <label>Val 2</label>
        <input type="text" class="validate" name="val2" maxlength="5" />
    </div>
    <div class="row">
        <label>Val 3</label>
        <input type="text" class="validate" name="val3" maxlength="5" />
    </div>
    <div class="row">
        <button type="submit">Send</button>
    </div>
</form>

JAVA SCRIPT:

$(function(){
  $('.validate').blur(function(){
      var reg=/^[0-9]{1}[0-9]{1}[\.]{1}[0-9]{1}[0-9]{1}$/g;
      if($(this).val().match(reg)==null)
            alert('Invalid input!');
                                          });});

3 个答案:

答案 0 :(得分:1)

function isAccept(number){
  return number.indexOf('.') < 4;
}

答案 1 :(得分:1)

试试这段代码:

<强> DEMO

    $(function(){
      $('.validate').blur(function(){
      var reg=/^[0-9]{0,3}[.][0-9]{0,2}$/g;
      console.log($(this).val().match(reg));
      if($(this).val().match(reg)==null)
            alert('Invalid input!');
      else
           alert('valid input!');          
                                          });});

答案 2 :(得分:0)

以这种方式尝试.test()

$(function () {
  $('.validate').blur(function () {
      var reg = /^[0-9]{0,3}[\.]{1}[0-9]{0,2}$/g; //<---updated this
      if (!reg.test(this.value)) {
          alert('Invalid input!');
          $(this).focus();
          return false;
      }
  });
});

Demo Fiddle

另一种方法是创建一个全局函数并将其用作回调:

function isValidInput() {
  var reg = /^[0-9]{0,3}[\.]{1}[0-9]{0,2}$/g;
  if (!reg.test(this.value)) {
      alert('Invalid input!');
      $(this).focus();
      return false;
  }
}

$(function () {
   $('.validate').blur(isValidInput);
});

Another fiddle