一个文本域中,
每一行输入一个ip地址,地址的最后一段可以使用“*”作为通配符,
例如: 255.255.255.* 或 255.255.* 或 255.* 那我怎么用正则表达式匹配这多个ip?

解决方案 »

  1.   


    //如果是单个校验,严谨一点的
    var reg = /^(?:[1-9]?[0-9]|1[0-9]{2}|2(?:[0-4][0-9]|5[0-5]))(?!.*?\.\*\.[*\d])(?:\.(?:(?:[1-9]?[0-9]|1[0-9]{2}|2(?:[0-4][0-9]|5[0-5]))|\*)){1,3}$/;
    //如果是多行校验
    var reg = /^(?:(?:[1-9]?[0-9]|1[0-9]{2}|2(?:[0-4][0-9]|5[0-5]))(?!.*?\.\*\.[*\d])(?:\.(?:(?:[1-9]?[0-9]|1[0-9]{2}|2(?:[0-4][0-9]|5[0-5]))|\*)){1,3}\s*)+$/;
      

  2.   

    //如果是单个校验,严谨一点的 
    var reg = /^(?:[1-9]?[0-9]|1[0-9]{2}|2(?:[0-4][0-9]|5[0-5]))(?!.*?\.\*\.[*\d])(?:\.(?:(?:[1-9]?[0-9]|1[0-9]{2}|2(?:[0-4][0-9]|5[0-5]))|\*)){1,3}$/; 
    //如果是多行校验 
    var reg = /^(?:(?:[1-9]?[0-9]|1[0-9]{2}|2(?:[0-4][0-9]|5[0-5]))(?!.*?\.\*\.[*\d])(?:\.(?:(?:[1-9]?[0-9]|1[0-9]{2}|2(?:[0-4][0-9]|5[0-5]))|\*)){1,3}\s*)+$/;
      

  3.   

    var reg = /^([1][2][7-9]|[1][3-9][0-9]|[2][0-4][0-9]|[2][5][0-5])(\.([1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]|[1-9][0-9]|[0-9])){0,2}\.([1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]|[1-9][0-9]|[1-9]|\*)$/;试试可以达到要求不
      

  4.   

    var reg = /^([1][2][7-9]|[1][3-9][0-9]|[2][0-4][0-9]|[2][5][0-5])(\.([1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]|[1-9][0-9]|[0-9])){0,2}\.([1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]|[1-9][0-9]|[1-9]|\*)$/;试试这个,了解不全面,可以按照需要自己再做简单修改