удалить IPS из шаблона регулярных выражений, JS - PullRequest
0 голосов
/ 13 февраля 2019

Здравствуйте, у меня есть шаблон для проверки URL, он работает хорошо, но я хотел бы удалить всю проверку из ip-номеров:

const pattern= /^(?:(?:https?):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/

Я пытался удалить некоторые части, подобные этой:

/^(?:(?:https?):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:\.\d{1,3}){2}){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/

но я не уверен, хорошо ли это

1 Ответ

0 голосов
/ 13 февраля 2019

Вы можете просто удалить все части, соответствующие регулярному выражению IP ((?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))) с шаблоном регулярного выражения IP , (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}:

/^(?:https?:\/\/)?(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/

См. regex demo

Подробности

  • ^ - начало строки
    • (?:https?:\/\/)? - необязательносоответствие строки
    • https? - http или https
    • :\/\/ - :// подстрока
    • (?: - начало группы контейнеров:
    • (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3} - шаблон IPv4
    • | - или
      • (?:[a-z\u00a1-\uffff0-9]-*)* - 0+ повторений буквы, цифры или символа между ¡ (индекс161) и `` (индекс 65535), за которыми следуют 0+ дефисов
      • [a-z\u00a1-\uffff0-9]+ - 1+ букв, цифр или символов от ¡ (индекс 161) до `` (индекс 65535)
      • (?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)* - ноль или более повторений точки, за которой следуют два вышеуказанных подшаблона
      • (?:\.[a-z\u00a1-\uffff]{2,}) - точка, за которой следуют 2 или более повторения букв, цифр или символов между ¡ (индекс 161) и `` (индекс 65535)
    • ) - конец тГруппа контейнеров
    • (?::\d{2,5})? - необязательная подстрока, начинающаяся с :, а затем от 2 до 5 цифр
    • (?:\/\S*)? - необязательная подстрока, начинающаяся с /, а затем 0+символы без пробелов
    • $ - конец строки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...