Kategorien
JavaScript Web Frontend

Javascript Text spliten in Array nach maximaler Zeichenlänge

Wenn man einen Text mit Javascript so teilen will, dass man eine bestimmte Zeichenlänge nicht überschreitet, kann man die folgende Funktion verwenden, die aus einem Text und einer Zeichenlänge ein Array zurückgibt:

Bsp:

textArr  = textToArray ("Wordpress eigene Farben und CSS Klassen in den Editor einbauen", 20);
//textArr enhält ["Wordpress Plugin"] und ["selber erstellen Tutorial"]
     textToArray = function(text, maxLineCharactersCount){
    var textArr = new Array();
    var fragment = "";
    var lastCutPostion = 0;
    var lastPossibleCutPosition = 0;
    var charCounter = 0;
    var position = 0;
    $j.each(text, function(index, char) {
        if(char == " " && charCounter != 0)
        {
            if(charCounter > maxLineCharactersCount)
            {
                //console.log(charCounter- (position - lastPossibleCutPosition));
                fragment  = text.substring (lastCutPostion, lastPossibleCutPosition);
                //console.log(fragment);
                textArr.push(fragment);
                charCounter = -1 + (position - lastPossibleCutPosition);
                lastCutPostion = lastPossibleCutPosition + 1;
            }
            lastPossibleCutPosition = position;
        }
        position++;
        charCounter++;
    });
    //do not forget the last Word
   if(charCounter > 0)
   {
       fragment  = text.substring(lastCutPostion, text.length);
       //console.log(textWidth);
       if(charCounter > maxLineCharactersCount)
       {
           fragment  = text.substring (lastCutPostion, lastPossibleCutPosition);
           lastCutPostion = lastPossibleCutPosition + 1;
           textArr.push(fragment);
           fragment  = text.substring(lastCutPostion, text.length);
       }
       textArr.push(fragment);
   }   
    return textArr;
}