文本框验证接受javascript中的IP

时间:2011-07-05 08:24:19

标签: javascript textbox ip

我想要一个验证功能,它必须接受3种类型:

var
portvar
ipvar

我的一个问题是在IPvar 用户输入必须使用此语法作为示例:

[192.168.1.0/24,10.1.1.0/24]

我如何从文本框中接受这样的Ips?

1 个答案:

答案 0 :(得分:1)

您可以针对这样的正则表达式进行检查:

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地址无效)。