Formatage IP

HTML

<div id="container">
  <textarea id="area1"></textarea>
  <textarea id="area2"></textarea>
</div>

CSS

body {
  text-align: center;
}

textarea {
  width: 45%;
  height: 500px;
  float: left;
  margin: 5px;
}

#convertir {
  margin: 100 0;
}


/*
123.156.*.*
125.162.23.25
103.56.24.26-29
142.210.56-58.*
142.210.56.*
61.218.0.19
61.218.0.20
61.218.0.21
61.218.0.22
61.218.0.23
61.218.0.24
61.218.0.254
61.220.23.61
61.220.23.62
61.220.23.63
61.220.23.64
61.220.23.65
61.220.23.66
61.220.23.254
120. 102 . 249. 235
*/

JavaScript

// https://regexr.com/
// VOIR LES NEW 1 et 2 !!!

// LOCAL STORAGE
var myIp1;
var myIp2;
if (localStorage.getItem("area1-ip")) {
  myIp1 = localStorage.getItem("area1-ip");
  $("#area1").val(myIp1);
}

// MAIN FUNCTION
var myIpFunc = function(str) {
  str = str
    // NETTOYAGE
    .replace(/\n+/ig, "\n")
    .replace(/\n+$/ig, "")
    .replace(/( )?(\.)( )?/ig, ".")
    // FORMATAGE DES SEPARATEURS
    // NEW 2
    .replace(/(\n\d{1,3}\.\d{1,3}\.\d{1,3}-\d{1,3})(\n|$)/gi, "$1.0-255$2")
    .replace(/(\d{1,3}\.\d{1,3}\.\d{1,3}(-\d{1,3})?.)\*/gi, "$10-255")
    .replace(/(\d{1,3}\.\d{1,3}\.)(\*)(\.\d{1,3})/gmi, "$10-255$3")
    .replace(/(\d{1,3}\.\d{1,3}\.)(\d{1,3})-(\d{1,3})(\.\d{1,3}(-\d{1,3})?)/ig, function(match, p1, p2, p3, p4, offset, string) {
      var i = (p2 < p3) ? p2 : p3;
      var j = (p3 > p2) ? p3 : p2;
      var k = [];
      while (i <= j) {
        k.push(p1 + i + p4);
        i++;
      }
      return k.join("\n");
    })
    .replace(/(\d{1,3}\.\d{1,3}\.\d{1,3}\.)(\d{1,3})-(\d{1,3})/igm, function(match, p1, p2, p3, p4, offset, string) {
      var i = (p2 < p3) ? p2 : p3;
      var j = (p3 > p2) ? p3 : p2;
      var k = [];
      while (i <= j) {
        k.push(p1 + i);
        i++;
      }
      return k.join("\n");
    })
    .split("\n");
  console.log(str);
  // TRI PAR IP
  var i = 0;
  while (str[i]) {
    str[i] = str[i].split(".", 4);
    var j = 0;
    while (str[i][j]) {
      str[i][j] = parseInt(str[i][j]);
      j++;
    }
    i++;
  }
  str.sort(function (a, b) {
  if (a[0] == b[0]) {
    if (a[1] == b[1]) {
      if (a[2] == b[2]) {
        return (a[3] < b[3]) ? -1 : (a[3] > b[3]) ? 1 : 0;
      } else {
        return (a[2] < b[2]) ? -1 : 1;
      }
    } else {
      return (a[1] < b[1]) ? -1 : 1;
    }
  } else {
    return (a[0] < b[0]) ? -1 : 1;
  }
});
  var k = 0;
  while (str[k]) {
    str[k] = str[k].join(".");
    k++;
  }
  str = str.filter(function(e, i, a) {
      return a.indexOf(e) === i;
    })
   ...