String teilen und in Variable speichern.

messmar

Erfahrenes Mitglied
Moin,

ich bins wieder ;-)

ich muss ein String, der in einem DIV von einer 285px Breite passt, in meheren Teilen speichern. Jeder Variable muss 45 Characters dieses Strings enthalten.

Das ganze angefangen bei dem ersten Character dieses Strings (0) und die zweite muss dann bei dem Character 45 anfagen bis dieser String kein Character mehr beinhaltet.

Für mein Verstadnis, wird es dann ein Array geben.

ich habe mit folgendem Code angefangen und jetzt braüchte ich ein wenig Unterstützung, da ich nicht genau weiß, wie ich daraus ein Array mache, der mir das gewünschte Ergebnis liefert.

für jede Hilfe, bin ich sehr dankbar:

HTML:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript">
            function firstwords(maxlength, string){
                var regexp = new RegExp("^((.|[\\r\\n]){0,"+maxlength+"})([\\s\\n\\r].*)?$", "m");
                var out = regexp.exec(string);
                if(out == undefined){
                    return string.substring(0, maxlength);
                }else{
                    return out[1].replace(new RegExp("[\\s\\n\\r]$", "mg"), '');
                }
            }
        </script>
    </head>
    <body>

        <script type="text/javascript">
            var text_lang = "Pellentesque egestas neque at dolor malesuada pellentesque. Sed sagittis nibh eu lorem porttitor mollis sed in odio. Nullam non metus. Cras metus lacus, eleifend eget venenatis at, rutrum vel risus. Nam aliquet purus at arcu laoreet elementum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam faucibus nulla justo. Aenean non erat turpis, nec luctus lorem.";

            if (text_lang.length > 45){
                var text_short = firstwords(45,text_lang);
                alert(text_short);
            } else {
                var text_short = text_lang;
            }
            alert('text_lang: ' + text_lang);
            alert('text_short: ' + text_short);
        </script>
    </body>
</html>

Vielen Dank un dGrüße
Messmar
 
Ohne deinen Code genau durchgesehen zu haben: Du willst einen langen String in Substrings zu jeweils 45 Zeichen aufteilen und die Substrings in ein Array speichern?

Ich würde das so machen:
Code:
function devideString(str, offset) {
  var strArray = new Array();
  for(i=0; i<str.length; i+=offset) {
    strArray[i/offset] = str.substr(i,offset);
  }
  return strArray;
}

var strArray = devideString("laaaanger laaaanger verdammtlanger String, der so lang ist",45);
 
Zuletzt bearbeitet:
Danke schon mal, aber irgendwie erreiche ich damit nicht das Ergebniss, das ich haben möchte.

Anders gesagt, ich wollte folgendes Ergebniss bekommen, was mir dieses, sage ich mal, anfänger bzw. nicht elegantes Skript mir liefert:

HTML:
<script type="text/javascript">

            var text_lang = "egestas neque at dolor malesuada pellentesque. Sed sagittis nibh eu lorem porttitor mollis sed in odio. Nullam non metus. Cras metus lacus, eleifend eget venenatis at, rutrum vel risus. Nam aliquet purus at arcu laoreet elementum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam faucibus nulla justo. Aenean non erat turpis, nec luctus.";

            if (text_lang.length > 45){
                var textShort1 = firstwords(45,text_lang);
                alert('textShort1: ' + textShort1);

                var text_lang = text_lang.substring(45,text_lang.length);
                

                var textShort2 = firstwords(45,text_lang);
                alert('textShort2: ' + textShort2);

                var text_lang = text_lang.substring(45,text_lang.length);
                var textShort3 = firstwords(45,text_lang);
                alert('textShort3: ' + textShort3);

                var text_lang = text_lang.substring(45,text_lang.length);
                var textShort4 = firstwords(45,text_lang);
                alert('textShort4: ' + textShort4);

                var text_lang = text_lang.substring(45,text_lang.length);
                var textShort5 = firstwords(45,text_lang);
                alert('textShort5: ' + textShort5);


                var text_lang = text_lang.substring(45,text_lang.length);
                var textShort6 = firstwords(45,text_lang);
                alert('textShort6: ' + textShort6);


                var text_lang = text_lang.substring(45,text_lang.length);
                var textShort6 = firstwords(45,text_lang);
                alert('textShort6: ' + textShort6);

            }
</script>

1000 Dank
Messmar
 
Javascript:
var text_lang = "egestas neque at dolor malesuada pellentesque. Sed sagittis nibh eu lorem porttitor mollis sed in odio. Nullam non metus. Cras metus lacus, eleifend eget venenatis at, rutrum vel risus. Nam aliquet purus at arcu laoreet elementum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam faucibus nulla justo. Aenean non erat turpis, nec luctus.";

var strArray = new Array();

for(i=0; text_lang.length>0; ++i) {
  strArray[i] = firstwords(45,text_lang);
  text_lang = text_lang.substring(45,text_lang.length);
  alert('textShort'+i+" "+strArray[i]);
}
Macht exakt das Gleiche, wie dein Skript.
 
Hi,

Danke! es funkt.

Sehr große Hilfe, da ich im moment parallel mit nem anderen JSTL Problem schwimme ;-)) dem kann ich mich jetzt widmen.


Vielen Dank
Messmar
 

Neue Beiträge

Zurück