Регулярное выражение: макс 4 цифры до точки
Здравствуйте! Не удаётся добавить условие: мин 1, макс 4 символа до точки.
if (/^\.|\d{1,4}\..*\.|[^\d\.{1}]/.test(value)) |
Ты ресурсы попутал, блоги не тут ведут.
|
Erolast, ничего не перепутал. Если можете помочь, то помогите, если нет...
|
Lobezki,
value -- примеры для теста -- правильные и ошибочные -- где? |
Цитата:
/^.{1,4}\./ И когда используешь квадратные скобки, работать с этим нужно так: /[x]{1}/ || /[x]+/ |
При таком регэкспе:
if (/^\.|\d+\..*\.|[^\d\.{1}]/.test(value)){ idInput.value = value.slice(0,-1); } в инпут можно ввести сколько угодно символов до точки. Например: 222222.22 (До точки введено 6 символов). Мне же надо ч.б. макс до точки можно было ввести 4 символа. |
Lobezki, ты какой шаблон пыжишся сварганить? :)
|
Цитата:
|
Взял regexp отсюда. Всё подходит, только надо прикрутить максимальный ввод цифр до точки: 4.
|
Lobezki,
/^\d{1,4}(\.\d{1,2})?$/ |
рони, запрещены цифры, а буквы наоборот вводятся(((
|
Цитата:
|
var value = idInput.value; if (/^\.|\d+\..*\.|[^\d\.{1}]/.test(value)){ idInput.value = value.slice(0,-1); } Это изначальный вариант. |
Lobezki,
и что должен делать ваш код? |
рони, на данный момент, если в инпут я ввожу что-то кроме цифр и одной точки, то оно обрезается. Цель кода не меняется. Мне всего лишь не удаётся добавить условие: если после ввода 4 цифр, следующим(то бишь 5м) символом является цифра, а не точка, то также необходимо обрезать.
|
Lobezki,
<input id='test'> <script> test.oninput = function () { var reg = /^\d{1,4}(\.\d{0,2})?$/, val = this.value; if(!reg.test(val)) this.value = val.slice(0,-1); } </script> |
рони, огромнейшее вам Спасибо!
|
Часовой пояс GMT +3, время: 00:43. |