Я пытаюсь найти регулярное выражение для проверки IP-адресов и один для имен хостов в Javascript.Регулярное выражение для имени хоста и ip
Я смотрел много сообщений здесь и в других местах, но не могу найти то, что соответствует моим потребностям.
Для IP я нашел два, которые прекрасно работают (не знаю, если есть и другие различия, чем формат):
1: (это мой предпочтительный регулярное выражение для IP-адресов)
^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
2:
^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
Для Hostname я нашел это:
/^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$/
который также отлично работает.
НО ^^ проблема в том, что имя хоста регулярное выражение будет проверять
192.168.178.1111
Это не имя хоста, это неверный IP-адрес.
Я хотел бы подгонять оба имени хоста & IP regex вместе в одном регулярном выражении, но так как регулярное выражение хоста будет проверять любой недействительный IP-адрес, я не могу их объединить.
Кто-нибудь есть идея о том, как создать регулярное выражение хоста, которое не будет проверять неверный IP-адрес?
EDIT: Я нашел это так же: http://jsfiddle.net/opd1v7au/2/
, но это будет проверять, например:
::2:3:4:5
который мое приложение не может принять.
Решение: ТНХ к Aaron У меня есть это регулярное выражение для в настоящее время, который, кажется, работает (в тестировании на данный момент)
^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)+([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$
Комбинированный вариант для проверки IP-адреса & Хосты ->RegExr.com:
^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)+([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$
Возможный дубликат [Как проверить проверку IP-адреса в JQuery] (HTTP://stackoverflow.com/questions/17587994/how-to-check-validation-of-ip-address-in-jquery) –
См. это http://stackoverflow.com/questions/106179/regular-expression-to-match- dns-hostname-or-ip-address –
они работают только для IP-адресов, у которых у меня уже есть 2 рабочих или неправильно работают с именами хостов. Что-то вроде IP-Regex показано как действительное, что неверно. И вы не можете комбинировать IP & Hostname вместе для правильной работы – Alkahna