【发布时间】:2011-09-28 14:46:54
【问题描述】:
我想要一个验证函数,它必须接受 3 种类型:
var
portvar
ipvar
我的一个问题是在 IPvar 用户输入必须采用以下语法,例如:
[192.168.1.0/24,10.1.1.0/24]
我怎样才能从文本框中接受这样的 Ips?
【问题讨论】:
标签: javascript textbox ip
我想要一个验证函数,它必须接受 3 种类型:
var
portvar
ipvar
我的一个问题是在 IPvar 用户输入必须采用以下语法,例如:
[192.168.1.0/24,10.1.1.0/24]
我怎样才能从文本框中接受这样的 Ips?
【问题讨论】:
标签: javascript textbox ip
你可以用这样的正则表达式来检查它:
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 地址无效)。
【讨论】:
/^\[(?!,) 表示该行必须以括号开头,并且不应紧跟逗号。