Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярное выражение на ограничение 4символов (https://javascript.ru/forum/misc/70136-regulyarnoe-vyrazhenie-na-ogranichenie-4simvolov.html)

ZeroSteep 14.08.2017 11:15

Регулярное выражение на ограничение 4символов
 
Помогите составить рег.выражение с ограничениями:
мах = 4 символа
сначала = любая цифра
далее = точка
далее еще 2 цифры...

Есть вот такое ограничени на данный момент

$(this).val($(this).val().replace(/[^0-9\d.]*/g, '').replace(/([,.])[,.]+/g, '$1').replace(/^[^\d]*(\d+([.,]\d{0,1})?).*$/g, '$1'));

но проблема что до запятой можно вводить много цифр... далее ограничение на 2 цифры работает...

еще хотелось бы для идеала что бы если не цифры вводятся то символ не оставался и вообще не вводился..

ksa 14.08.2017 11:23

Цитата:

Сообщение от ZeroSteep
мах = 4 символа

Означает, что может быть и меньше...
Цитата:

Сообщение от ZeroSteep
сначала = любая цифра
далее = точка
далее еще 2 цифры...

var reg=/\d\.\d\d/;
alert(reg.test('1.23'));

ZeroSteep 14.08.2017 11:38

Цитата:

Сообщение от ksa (Сообщение 461586)
Означает, что может быть и меньше...


var reg=/\d\.\d\d/;
alert(reg.test('1.23'));

блиин,логично но тогда надо сделать что бы типа такая запись тоже проходила

"1.0" а это знач мин 3символа

laimas 14.08.2017 11:46

/\d+\.\d{1,2}/

ZeroSteep 14.08.2017 12:00

Цитата:

Сообщение от laimas (Сообщение 461591)
/\d+\.\d{1,2}/

а можно в таком формате .replace(/^[^0-9\d.]*(\d+([.]\d{0,1})?).*$/g, '$1')); ???
а то я че то не соображу теперь что куда и как приткнуть...:help:

laimas 14.08.2017 12:28

Цитата:

Сообщение от ZeroSteep
[^0-9\d.]

Вы можете пояснить, что это такое?

ZeroSteep 14.08.2017 13:02

Цитата:

Сообщение от laimas (Сообщение 461594)
Вы можете пояснить, что это такое?

честно говоря,мое понимание в этом мало, но мое представление в этом типа того что начало строки с цифр и вообще только цифры.до точки и далее 2 цифры после самой точки.
но до точки я могу вводить кучу цифр и это как то над исравить

laimas 14.08.2017 13:16

Цитата:

Сообщение от ZeroSteep
честно говоря,мое понимание в этом мало

https://developer.mozilla.org/ru/doc...Objects/RegExp

ksa 14.08.2017 13:20

Цитата:

Сообщение от ZeroSteep
надо сделать что бы типа такая запись тоже проходила
"1.0" а это знач мин 3символа

Усилим чутка... :)
var reg=/^\d\.\d\d?$/;
alert(reg.test('1.23'));
alert(reg.test('1.0'));

ksa 14.08.2017 13:22

Цитата:

Сообщение от ZeroSteep
а можно в таком формате .replace(/^[^0-9\d.]*(\d+([.]\d{0,1})?).*$/g, '$1'));

Ты собрался что-то менять на часть этого? :blink:
Какая вообще задача перед тобой стоит?


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