1. 程式人生 > >IP地址正則表示式,帶*驗證

IP地址正則表示式,帶*驗證

IP地址正則表示式,在網上找了很多,但是沒有看到帶 ‘ * ’ 的正則表示式,通常我們在設定IP時,會設定IP段(0-255)或者用 ‘ * ’ 代替。 


1、下為不帶 ‘ * ’ 的正則表示式

var checkName = /^(?:(?:1[0-9][0-9]\.)|(?:2[0-4][0-9]\.)|(?:25[0-5]\.)|(?:[1-9][0-9]\.)|(?:[0-9]\.)){3}(?:(?:1[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5])|(?:[1-9][0-9])|(?:[0-9]))$/;

可以驗證正常的IP地址,如:192.168.0.1


2、下為帶 ‘ * ’ 的正則表示式

var checkName = /^(?:(?:1[0-9][0-9]\.)|(?:2[0-4][0-9]\.)|(?:25[0-5]\.)|(?:[1-9][0-9]\.)|(?:[0-9/*]\.)){3}(?:(?:1[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5])|(?:[1-9][0-9])|(?:[0-9/*]))$/;

可以驗證正常的IP地址,

如:192.168.0.1

       192.168.0.* 

       192.168.*.* 

        *.*.*.*


3、多組IP地址驗證,中間用 , 隔開

在JQuery Validator 中可直接使用

//檢測IP地址
$.validator.addMethod("checkIp",
function (value, element, params) {
    var checkName = /^(?:(?:1[0-9][0-9]\.)|(?:2[0-4][0-9]\.)|(?:25[0-5]\.)|(?:[1-9][0-9]\.)|(?:[0-9/*]\.)){3}(?:(?:1[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5])|(?:[1-9][0-9])|(?:[0-9/*]))$/;
    if (value.toString().trim() != value.toString()) {
            return false;
    }
    var ips = value.split(",");
    return ips.every(value1 => {
        return (checkName.test(value1))
    });
}, "IP地址格式錯誤");

正常使用可以根據如下,自行修改

//目標字元
var checkString = "162.9.6.*,192.186.16.2";
var checkName = /^(?:(?:1[0-9][0-9]\.)|(?:2[0-4][0-9]\.)|(?:25[0-5]\.)|(?:[1-9][0-9]\.)|(?:[0-9/*]\.)){3}(?:(?:1[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5])|(?:[1-9][0-9])|(?:[0-9/*]))$/;
var ips = checkString.split(",");
var result = ips.every(value => {
    return (checkName.test(value))
});
//結果
console.log(result);

4、另提供一個驗證IP組數的方法(不超過10組IP)

$.validator.addMethod("checkIpLength",
function (value, element, params) {
    var ips = value.split(",");
    return ips.length > 10 ? false : true;
}, "不能超過10個IP段");