Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.08.2017, 11:15
Новичок на форуме
Отправить личное сообщение для ZeroSteep Посмотреть профиль Найти все сообщения от ZeroSteep
 
Регистрация: 14.08.2017
Сообщений: 4

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

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

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

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

еще хотелось бы для идеала что бы если не цифры вводятся то символ не оставался и вообще не вводился..
Ответить с цитированием
  #2 (permalink)  
Старый 14.08.2017, 11:23
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от ZeroSteep
мах = 4 символа
Означает, что может быть и меньше...
Сообщение от ZeroSteep
сначала = любая цифра
далее = точка
далее еще 2 цифры...
var reg=/\d\.\d\d/;
alert(reg.test('1.23'));
Ответить с цитированием
  #3 (permalink)  
Старый 14.08.2017, 11:38
Новичок на форуме
Отправить личное сообщение для ZeroSteep Посмотреть профиль Найти все сообщения от ZeroSteep
 
Регистрация: 14.08.2017
Сообщений: 4

Сообщение от ksa Посмотреть сообщение
Означает, что может быть и меньше...


var reg=/\d\.\d\d/;
alert(reg.test('1.23'));
блиин,логично но тогда надо сделать что бы типа такая запись тоже проходила

"1.0" а это знач мин 3символа
Ответить с цитированием
  #4 (permalink)  
Старый 14.08.2017, 11:46
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

/\d+\.\d{1,2}/
Ответить с цитированием
  #5 (permalink)  
Старый 14.08.2017, 12:00
Новичок на форуме
Отправить личное сообщение для ZeroSteep Посмотреть профиль Найти все сообщения от ZeroSteep
 
Регистрация: 14.08.2017
Сообщений: 4

Сообщение от laimas Посмотреть сообщение
/\d+\.\d{1,2}/
а можно в таком формате .replace(/^[^0-9\d.]*(\d+([.]\d{0,1})?).*$/g, '$1')); ???
а то я че то не соображу теперь что куда и как приткнуть...
Ответить с цитированием
  #6 (permalink)  
Старый 14.08.2017, 12:28
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от ZeroSteep
[^0-9\d.]
Вы можете пояснить, что это такое?
Ответить с цитированием
  #7 (permalink)  
Старый 14.08.2017, 13:02
Новичок на форуме
Отправить личное сообщение для ZeroSteep Посмотреть профиль Найти все сообщения от ZeroSteep
 
Регистрация: 14.08.2017
Сообщений: 4

Сообщение от laimas Посмотреть сообщение
Вы можете пояснить, что это такое?
честно говоря,мое понимание в этом мало, но мое представление в этом типа того что начало строки с цифр и вообще только цифры.до точки и далее 2 цифры после самой точки.
но до точки я могу вводить кучу цифр и это как то над исравить
Ответить с цитированием
  #8 (permalink)  
Старый 14.08.2017, 13:16
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от ZeroSteep
честно говоря,мое понимание в этом мало
https://developer.mozilla.org/ru/doc...Objects/RegExp
Ответить с цитированием
  #9 (permalink)  
Старый 14.08.2017, 13:20
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от ZeroSteep
надо сделать что бы типа такая запись тоже проходила
"1.0" а это знач мин 3символа
Усилим чутка...
var reg=/^\d\.\d\d?$/;
alert(reg.test('1.23'));
alert(reg.test('1.0'));
Ответить с цитированием
  #10 (permalink)  
Старый 14.08.2017, 13:22
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от ZeroSteep
а можно в таком формате .replace(/^[^0-9\d.]*(\d+([.]\d{0,1})?).*$/g, '$1'));
Ты собрался что-то менять на часть этого?
Какая вообще задача перед тобой стоит?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярное выражение tata4ka Общие вопросы Javascript 4 15.11.2014 00:56
Регулярное выражение и метод test tsigel Общие вопросы Javascript 3 30.08.2013 13:47
регулярное выражение literator Ваши сайты и скрипты 1 18.08.2013 18:24
Регулярное выражение: любой символ, включая перевод строки Gleb Общие вопросы Javascript 3 28.07.2011 12:15
регулярное выражение theo_ Общие вопросы Javascript 15 21.06.2010 10:29