разрешить только цифры И может «содержать» sla sh И не должно начинаться или заканчиваться косой чертой - PullRequest
3 голосов
/ 23 апреля 2020

что у меня есть это:

[^\/][\d]*[^\/]

Проблема, которая у меня все еще есть: sla sh в начале все еще разрешено

У кого-нибудь есть идея?

Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 23 апреля 2020

[^/] соответствует любому символу, а не только ди git. Кроме того, для проверки всей строки необходимо использовать привязки или метод, который привязывает совпадения в начале и конце строки.

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

^(?!\/)[\d\/]*$(?<!\/)

или

^\d(?:[\/\d]*\d)?$

См. Демонстрационную версию regex # 1 и демонстрационную версию regex # 2 .

Подробности регулярного выражения # 1

  • ^ - начало строки
  • (?!\/) - не разрешено / в начале
  • [\d\/]* - 0 или более цифр или косых черт
  • $ - конец строки
  • (?<!\/) - неудача в совпадении, если в конце есть /.

Regex # 2 подробнее

  • ^ - начало строки
  • \d - di git
  • (?:[\/\d]*\d)? - дополнительная группа без захвата соответствие 0 или более / или di git символов, а затем di git
  • $ - конец строки.
2 голосов
/ 23 апреля 2020

Попробуйте с этим:

(^[\d]$|^[\d][\/\d]*[\d]$)

Смотрите демо здесь

^[\d] --- start with digit
[\/\d]* --- / or digit can be 0 or more times
[\d]$ --- end with digit

Еще один случай только для 1 di git:

^[\d]$ --- start and end digit only
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...