Php 如何将Ip地址与逗号分隔的Ip地址匹配

Php 如何将Ip地址与逗号分隔的Ip地址匹配,php,preg-match,Php,Preg Match,如何将有效ip与分隔字符串匹配 我有一个文本框,用户可以输入逗号,分隔ip 为此,我检查字符串是否包含有效的ip字符串 字符串应该是 192.168.1.1 195.138.124.1,1.154.127.1 这就是我要和你们分享的。我已经为此花费了2到3个小时,所以我想与您分享。因此,您可能不必为此花费数小时 这是使用逗号分隔字符串匹配IP的正则表达式 /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?:,\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{

如何将有效ip与分隔字符串匹配

我有一个文本框,用户可以输入逗号,分隔ip

为此,我检查字符串是否包含有效的ip字符串

字符串应该是

192.168.1.1
195.138.124.1,1.154.127.1

这就是我要和你们分享的。我已经为此花费了2到3个小时,所以我想与您分享。因此,您可能不必为此花费数小时

这是使用逗号分隔字符串匹配IP的正则表达式

/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?:,\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})*$/

这就是我要和你们分享的。我已经为此花费了2到3个小时,所以我想与您分享。因此,您可能不必为此花费数小时

这是使用逗号分隔字符串匹配IP的正则表达式

/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?:,\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})*$/

正如所建议的那样,使用内置过滤器可以获得更好的结果:

function validateIPs ($input) {
    foreach(explode(',', $input) as $ip)
        if (!filter_var($ip, FILTER_VALIDATE_IP))
            return false;
    return true;
}

正如所建议的那样,使用内置过滤器可以获得更好的结果:

function validateIPs ($input) {
    foreach(explode(',', $input) as $ip)
        if (!filter_var($ip, FILTER_VALIDATE_IP))
            return false;
    return true;
}

这就是你所说的浪费时间,首先在谷歌上点击各种各样的regex来获取ip地址。可能不是逗号分隔的,但为什么不使用爆炸;为此,您最好使用内置的filter\u var函数和filter\u VALIDATE\u IP。您的regexp将匹配不正确的地址-您只是在检查数字的数量,因此350.350.350.350将通过。您可以使用组:^\d{1,3}?:\。\d{1,3}{3}:,?1*$其中?1是对第一个圆括号子模式的引用,这是一个ip地址的模式打开一个非捕获组。这就是你所说的浪费时间,首先在谷歌上点击各种各样的正则表达式来获取ip地址。可能不是逗号分隔的,但为什么不使用爆炸;为此,您最好使用内置的filter\u var函数和filter\u VALIDATE\u IP。您的regexp将匹配不正确的地址-您只是在检查数字的数量,因此350.350.350.350将通过。您可以使用组:^\d{1,3}?:\。\d{1,3}{3}:,?1*$其中?1是对第一个圆括号子模式的引用,这是一个ip地址的模式打开非捕获组。将分解与此答案组合。将分解与此答案组合。