Сделать точку необязательной с ограниченным количеством символов - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь использовать следующее регулярное выражение, и оно терпит неудачу

/^\d{1,18}[.]?$/

Я хочу di git 1-18, но необязательную точку (.) В любом месте. Я тоже попробовал следующее

  /^[1-9]{1,18}[.]?$/

Это считается. как символ, то есть 12345678901234567.

Как я могу получить 18 цифр и необязательно. где-нибудь в регулярных выражениях

Ответы [ 2 ]

2 голосов
/ 04 мая 2020

Вы можете использовать это регулярное выражение с заглядыванием, чтобы заблокировать 2 точки:

^(?!(?:\d*\.){2})[.\d]{1,18}$

Демонстрация RegEx

Подробности RegEx:

  • ^: Старт
  • (?!(?:\d*\.){2}): отрицательный взгляд, запрещающий 2 точки
  • [.\d]{1,18}: точка или ди git для диапазона длины между 1 до 18
  • $: конец
1 голос
/ 04 мая 2020

Вы можете использовать

^(?=(?:\.?\d){1,18}\.?$)\d*\.?\d*$

См. Демоверсию regex

Подробности

  • ^ - начало строки
  • (?=(?:\.?\d){1,18}\.?$) - положительный прогноз, требующий от 1 до 18 случаев необязательного . и любого di git, за которым следует необязательный . в конце строки
  • \d*\.?\d* - 0+ цифр, необязательный . и снова 0+ цифр
  • $ - конец строки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...