Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярное выражение: макс 4 цифры до точки (https://javascript.ru/forum/misc/53948-regulyarnoe-vyrazhenie-maks-4-cifry-do-tochki.html)

Lobezki 25.02.2015 12:18

Регулярное выражение: макс 4 цифры до точки
 
Здравствуйте! Не удаётся добавить условие: мин 1, макс 4 символа до точки.

if (/^\.|\d{1,4}\..*\.|[^\d\.{1}]/.test(value))

Erolast 25.02.2015 12:57

Ты ресурсы попутал, блоги не тут ведут.

Lobezki 25.02.2015 14:42

Erolast, ничего не перепутал. Если можете помочь, то помогите, если нет...

рони 25.02.2015 14:53

Lobezki,
value -- примеры для теста -- правильные и ошибочные -- где?

Sweet 25.02.2015 14:56

Цитата:

Сообщение от Lobezki
мин 1, макс 4 символа до точки

/^.{1,4}\./

И когда используешь квадратные скобки, работать с этим нужно так:
/[x]{1}/ || /[x]+/

Lobezki 25.02.2015 14:58

При таком регэкспе:

if (/^\.|\d+\..*\.|[^\d\.{1}]/.test(value)){
			idInput.value = value.slice(0,-1);
		}


в инпут можно ввести сколько угодно символов до точки. Например: 222222.22 (До точки введено 6 символов).

Мне же надо ч.б. макс до точки можно было ввести 4 символа.

ksa 25.02.2015 15:14

Lobezki, ты какой шаблон пыжишся сварганить? :)

Lobezki 26.02.2015 21:26

Цитата:

Сообщение от ksa (Сообщение 358376)
Lobezki, ты какой шаблон пыжишся сварганить? :)

У меня инпут с ценой. После точки идут копейки. До точки мне надо максимум ввод 4х цифр.

Lobezki 26.02.2015 21:35

Взял regexp отсюда. Всё подходит, только надо прикрутить максимальный ввод цифр до точки: 4.

рони 26.02.2015 21:36

Lobezki,
/^\d{1,4}(\.\d{1,2})?$/

Lobezki 26.02.2015 21:55

рони, запрещены цифры, а буквы наоборот вводятся(((

рони 26.02.2015 22:22

Цитата:

Сообщение от Lobezki
запрещены цифры, а буквы наоборот вводятся

где код?

Lobezki 26.02.2015 22:26

var value = idInput.value;
		if (/^\.|\d+\..*\.|[^\d\.{1}]/.test(value)){
			idInput.value = value.slice(0,-1);
		}

Это изначальный вариант.

рони 26.02.2015 22:29

Lobezki,
и что должен делать ваш код?

Lobezki 26.02.2015 22:37

рони, на данный момент, если в инпут я ввожу что-то кроме цифр и одной точки, то оно обрезается. Цель кода не меняется. Мне всего лишь не удаётся добавить условие: если после ввода 4 цифр, следующим(то бишь 5м) символом является цифра, а не точка, то также необходимо обрезать.

рони 26.02.2015 22:46

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>

Lobezki 26.02.2015 22:52

рони, огромнейшее вам Спасибо!


Часовой пояс GMT +3, время: 00:43.