Запрещение пользователю вводить более 3 цифр перед десятичной точкой в JavaScript

0

В текстовом поле PHP: запретите пользователю вводить более трех чисел до десятичной точки, например:

если пользователь вводит 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!');
                                          });});
  • 2
    Так какой у тебя вопрос?
  • 0
    Попробуйте это регулярное выражение: "\ d {0,3} [.] \ D + | ^ \ d {0,3} $"
Теги:
decimal

3 ответа

1
function isAccept(number){
  return number.indexOf('.') < 4;
}
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!');          
                                          });});
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;
      }
  });
});

Демо-скрипт

Другой способ - сделать глобальную функцию и использовать ее в качестве обратного вызова:

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);
});

Еще одна скрипка

Ещё вопросы

Сообщество Overcoder
Наверх
Меню