Числовой ввод мин. Длина 4, макс. 5, а не 0 - PullRequest
0 голосов
/ 23 марта 2011

Как я могу сделать числовой ввод с минимальной длиной 4, максимум 5 и не 0;

, как вы можете ввести 1234, но 5-ая цифра не должна быть 0;Таким образом, 12340 также не более 4999?


Ответ https://stackoverflow.com/users/665261/billy-moon:
replace (/ [^ 0-9] /, '') -> делает числовое значение1009 * replace (/ ^ ([0-9] {4}) [^ 1-9] + /, '$ 1') -> делает 5-ю цифру не 0
replace (/ ^ [^ 0-4] ​​/, '') -> делает первую цифру 0-4

Код:

$('input').bind('keyup change',function(){
    $(this).attr({ value: $(this).attr('value').replace(/[^0-9]/,'').replace(/^([0-9]{4})[^1-9]+/,'$1').replace(/^[^0-4]/,'') })
})

Ответы [ 2 ]

2 голосов
/ 23 марта 2011

Я бы добавил событие keyup, которое проверяет поле и заменяет неправильный ввод, примерно так:

$('input').bind('keyup change',function(){
$(this).attr({ value: $(this).attr('value').replace(/[^0-9]/,'').replace(/^([0-9]{4})[^1-9]+/,'$1') })
})
0 голосов
/ 23 марта 2011

вы не можете установить «минимальную длину», но вы можете проверять ввод в любое время (при изменении, отправке формы и т. Д.):

if(!input.value.test(/^\d{4}[1-9]?$/)){
   // fail
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...