Javascript 用于ip地址列表的正则表达式
我想匹配包含“*”或逗号分隔的IPv4地址列表的字符串 以下内容适用于一个IP或一个star: /^(?:(?:(?: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]|*)$/ 我试着采用这个方法来获得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]。)$/ 但它并没有像预期的那样工作 你能帮帮我吗 thx,Javascript 用于ip地址列表的正则表达式,javascript,regex,node.js,validation,Javascript,Regex,Node.js,Validation,我想匹配包含“*”或逗号分隔的IPv4地址列表的字符串 以下内容适用于一个IP或一个star: /^(?:(?:(?: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]|*)$/ 我试着采用这个方法来获得IP列表或明星: /^(?:^ |,)(?:(?:25[0-5]| 2[0-4][0-9]|[01]?[0-9][0-9]?){3}(?:25[0-5]| 2[0-4][0-9][01]
Thomas因为您对IP的可接受号码很明确 如果您必须用一个RegExp检查有效性,我只会使用这样的RegExp,否则将其分解为几个步骤可能会更清楚
// some func
var reIP = /^(?:\d|1?\d\d|2[0-4]\d|25[0-5])(?:\.(?:\d|1?\d\d|2[0-4]\d|25[0-5])){3}$/,
tokens = str.split(/\s*,\s*/), i;
for (i = 0; i < tokens.length; ++i)
if (!reIP.test(tokens[i]))
return false;
return true;
//一些函数
var reIP=/^(?:::\(?:\d | 1?\d | 2[0-4]\d | 25[0-5])(?:\(?:\d | 1?\d | 2[0-4]\d | 25[0-5]){3}$/,
令牌=str.split(/\s*,\s*/),i;
对于(i=0;i
我认为您只想匹配IPv4?如果您能为您的尝试提供示例输入、预期输出和实际输出,那就太好了。制作小提琴会更好。*
是一个特殊字符,所以如果你想在字符串(你的IP地址)中找到它,你必须像\*
一样对它进行转义。我不确定这是否是唯一的问题,所以我没有将其作为答案发布。好吧,我想匹配星号,所以我需要通过*或类似于“127.0.0.1127.0.0.2123.123.123”thx的IPv4地址列表来转义它,以供共享。但这个正则表达式不允许从IP地址的第二个八位字节开始超过2位。有什么问题吗?e、 3.0-4)3[0-4)3[0-4]d | 4 5[0-5]25[0-5 5](?:;4.0-5)5[0-5[0-5 5](?::;4.1\d\d | 2[10-4]3 1245)3 4077.3)3 ::::;3 12455 | 1.3 | 1.3 | 1\3 1245)3 1245)3 \12455 5 5 5 5 5 5 5 在场在场在场在场在场在场在场在场在场在场在场在场在场在场在场在场在场在场在场在场在场的5 5[5[5[5[5[5[5[5[0-5[5[5[5[5[5[5[5[5[5[5当然,我可以这样做,而且很快也在考虑这样做。但是对于这个项目,最好通过正则表达式进行检查。哦,我忘了分组
// some func
var reIP = /^(?:\d|1?\d\d|2[0-4]\d|25[0-5])(?:\.(?:\d|1?\d\d|2[0-4]\d|25[0-5])){3}$/,
tokens = str.split(/\s*,\s*/), i;
for (i = 0; i < tokens.length; ++i)
if (!reIP.test(tokens[i]))
return false;
return true;