2013-06-11 4 views
0

У меня есть сценарий ниже, который я использую для проверки ввода для проверки текстового поля без текста, а также полезно удваивать, чтобы разрешать только число от 0 до 10 с точностью до 3 десятичных знаков.jQuery Текстовое поле Проверка всего числа

$('.sourceValidation').keyup(function() { 
    if (!this.value.match(/^(([0-9]|10)(\.\d{1,3})?)?$/)) { 
    this.value = this.value.replace(/[^0-9\.]/g, '').substring(0,5);}}) 

Я не совсем уверен в этом коде, но как переделать его так, что он будет проверять ввод в диапазоне от 0 до 99 (только целых чисел), нет текста, нет десятичной точки.

ответ

1
$('.sourceValidation').keyup(function() { 
    if (!this.value.match(/^([0-9]{0,2})$/)) { 
     this.value = this.value.replace(/[^0-9]/g, '').substring(0,2); 
    } 
}); 

Ключевая часть, чтобы изменить регулярное выражение из

/^(([0-9]|10)(\.\d{1,3})?)?$/ 

к

/^([0-9]{0,2})$/ 

..which является регулярным выражением, которое позволит 0, 1 или 2 цифры. Тем не менее, он будет давать ведущие нули, например 01, 09 - или даже 00. Я не знаю, приемлемо ли это в вашей ситуации.

Updated fiddle

replace функция говорит [^0-9]/g - что означает - заменить что-нибудь, что не является (^) цифра (0-9) и сделать это через всю строку (g - глобальный). Затем он обрезает до 2 символов max (substring(0,2)).

+0

Я создал эту скрипку - HTTP: // jsfiddle. net/HCGGJ/- код для меня не работает? –

+0

@DustinCook Извините, я тоже не изменил функцию alter - см. Мое обновление и скрипку –

+0

С этими вопросами регулярного выражения все сходят с ума, пытаясь получить ответ сначала (включая меня :)) –

2

Регулярное выражение, которое вы должны принять только от 0 до 99 без чего-либо еще является

/^[0-9]{1,2}$/ 

Это означает: Accept цифры от '0' до '9', 1 или 2 раза.

Обратите внимание, что ваш код не содержит jquery, это, кажется, чистый javascript. < - Редактировать: это я возвращаю. Виноват.

+0

Он связывает событие с использованием jQuery 'keyup' –

+0

Oups да, извините ^^ –

+0

Не извиняйся, извинись перед Джоном Ресигом!Он будет абсолютно в ярости! –

1

Пожалуйста найти рабочую версию JQuery ниже

[http://jsfiddle.net/jQmR3/][1] 

Это позволяет пользователям вводить только цифры если ($ .inArray (charpressed, альфа)> -1) { возвращение ложным; } Вы можете добавить то, что символы, которые вы должны разрешить в массиве там

+0

http://jsfiddle.net/jQmR3/1/ Это позволит только с 0-99 –

2

Попробуйте

^[1-9][0-9]?$|^99$ 

U Может Teast Это Link

+0

Очень аккуратное решение - спасибо! –

+0

U Приветствую вас, Bro :) –

Смежные вопросы