仅使用 JavaScript 正则表达式检查 IP 地址范围

Sal*_*lly 0 javascript regex ip

我想检查正则表达式中的 IP 地址范围,我正在使用这种方式并且它工作得非常成功

function validate_ip(ip)
{
       // See if x looks like an IP address using our "almost IP regex".
    var regex = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;
    var match = regex.exec(ip);
    if (!match) return false;
    // Additional code to check that the octets aren't greater than 255:
    for (var i = 1; i <= 4; ++i) {
        if (parseInt(match[i]) > 255) 
            return false;
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

现在我想仅检查正则表达式中的范围和语法,可以这样做吗?

pha*_*t0m 5

最直接的方法是查看不同的情况:

25[0-5]|2[0-4]\d|1?\d\d?
Run Code Online (Sandbox Code Playgroud)

这将匹配 0 到 255 之间的数字,不允许使用前缀零,例如:055。

如果你想排除零:

25[0-5]|2[0-4]\d|1\d\d|[1-9]\d?
Run Code Online (Sandbox Code Playgroud)