проверка текстового поля, принимающего IP-адреса в JavaScript - PullRequest
2 голосов
/ 05 июля 2011

Я хочу иметь функцию проверки, она должна принимать 3 типа:

var
portvar
ipvar

одна из моих проблем заключается в том, что пользовательский ввод IPvar должен быть в этом синтаксисе как пример:

[192.168.1.0/24,10.1.1.0/24]

как я могу принять только такие Ips из текстовых полей?

1 Ответ

1 голос
/ 05 июля 2011

Вы можете проверить это по регулярному выражению, как это:

var textVal = ...;
if ((/^\[(?!,)(,?(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\/[1-9]\d*)+\]$/).test(textVal)) {
  alert('Valid!');
}
else {
  alert('Invalid!');
}

Регулярное выражение идентифицирует действительные IP-адреса, где каждая часть IP-адреса представляет собой число от 0 до 255. Кроме того, как показывает ваш пример, за каждым IP-адресом должен следовать один /, а затем число, представляющее маску подсети. Наконец, несколько IP разделены запятыми (однако регулярное выражение не допускает запятую в самом начале или в самом конце).

(Кстати, второй IP-адрес в вашем примере недействителен).

...