Count cesures

by toubia95

HTML

<p>
  Coller un xml.
</p>
<div>
  <textarea id="area1"></textarea>
</div>
<br>
<a href="#" id="convertir">Corriger césures (<span id="nbre">0</span>)</a>
<br>
<br>
<div>
  <textarea id="area2"></textarea>
</div>

CSS

/*
- detection pages avec split
- correction affichage nombre de césures
*/

body {
  text-align: center;
}

textarea {
  width: 95%;
  height: 150px;
}

#convertir {
  margin: 100 0;
}

JavaScript

// https://regexr.com/
var myHtml2;
var myRegex = /(^|\s)([a-zàéèêëîïôöûüù]+)(-<lb\/>\n)([a-zàéèêëîïôöûüù]+)/gi;

if (localStorage.getItem("area1")) {
  myHtml2 = localStorage.getItem("area1");
  var l2 = (myHtml2) ? myHtml2.match(myRegex).length : 0;
  $("#area1").val(myHtml2);
  $("#nbre").text(l2);
}

$('#area1').bind('input propertychange', function() {
  var myHtml3 = $("#area1").val();
  localStorage.setItem("area1", myHtml3);
  var l3 = (myHtml3) ? myHtml3.match(myRegex).length : 0;
  $("#nbre").text(l3);
});

$("#convertir").click(function() {
  $("#area2").val('');
  var myHtml = $("#area1").val();
  localStorage.setItem("area1", myHtml);
  var nombre = (myHtml) ? myHtml.match(myRegex).length : 0;

  if (confirm(nombre + " césures trouvées !\n\nCommencer la correction ?")) {
    var myHtmlB = myHtml.split('<pb n="');
    var i = 0;
    var j = 0;
    var myMatch1;
    var lB = myHtmlB.length;
    while (i < lB) {
      myMatch1 = (myHtmlB[i].match(/^\d+/igm)) ? myHtmlB[i].match(/^\d+/igm).toString() : '';
      if (myHtmlB[i].match(myRegex)) {
        myHtmlB[i] = myHtmlB[i].replace(myRegex, function(str, p1, p2, p3, p4) {
          var r = confirm("Page " + myMatch1 + "\n\n" + str + "\n\nENLEVER LA CÉSURE ?");
          if (r === true) {
            j++;
            return p1 + p2 + p4;
          } else {
            return str;
          }
        });
      }
      i++;
    }
    alert("Fin de la correction !\n\n" + j + " césures corrigées !");
    var myHtmlC = myHtmlB.join('<pb n="');
    $("#area2").val(myHtmlC);
  }
});