Avatar billede tejs Nybegynder
22. februar 2005 - 07:56 Der er 7 kommentarer

Linieskift efer 45 tegn

Jeg har en variabel med en tekst-streng, der kommer fra en query-string (fra en ASP-side) og kan være alle mulige forskellige antal karakterer.

Denne variabel trækker jeg ind i et tekstfelt, men for at vide hvornår der er 1 linie og hvornår der er 2, vil jeg selv bestemme linieskiftene. Jeg vil derfor lave et linieskift efter 45 tegn.

Hvordan gør jeg det..?
Avatar billede thulstrup Nybegynder
22. februar 2005 - 10:20 #1
var s = "Jeg har en variabel med en tekst-streng, der kommer fra en query-string (fra en ASP-side) og kan være alle mulige forskellige antal karakterer.";
s = s.slice(0, 44)+"\n"+s.slice(45, -1);
trace(s);

...indtil Barklund kommer og banker mig oven i hovedet med en bedre metode :o)
Avatar billede barklund Nybegynder
22. februar 2005 - 10:28 #2
Naa, det er fair nok, men måske noget med:

function splitStringOnLength(str, len) {
    var ret = new Array();
    while (str.length) {
        ret.push(str.slice(0,len);
        str = str.slice(len);
    }
    return ret;
}

Så kan man skrive:

var s = "Jeg har en variabel med en tekst-streng, der kommer fra en query-string (fra en ASP-side) og kan være alle mulige forskellige antal karakterer.";
var s_array = splitStringOnLength(s);
var ny_streng = s_array.join("\n");

Har ikke lige testet det, men det er et bud :)

--
Morten Barklund
Avatar billede tejs Nybegynder
22. februar 2005 - 17:58 #3
Hej Barklund - det virker perfekt, men der er noget jeg ikke har tænkt på.
Jeg skal bruge det til at vise nogle overskrifter med og det er jo knap så sejt at den deler præcis ved 45 - det giver nogle ret dårlige linieskift.. :S (MIN FEJL!)

Er det muligt at ændre funktionen, så den laver linieskift EFTER det sidste mellemrum i hver linie, men uden at overstige 45 tegn i hver linie..?

Måske en lidt svær en - så jeg hæver lige pointene..
Avatar billede barklund Nybegynder
22. februar 2005 - 19:44 #4
Ja, men det er straks sværere og bestemt ikke noget, som flash er beregnet til. Hvad nu, hvis der er et ord på 50 bogstaver? Eller et ord med en bindstreg? Og mellemrummet skal vel slettes og ikke overføres til næste linje - hvad hvis der er flere mellemrum i træk?
Avatar billede tejs Nybegynder
23. februar 2005 - 08:15 #5
Ja, det er rigtigt.. men er der ikke noget med at man kan bruge HTML tags i variablerne..? Hvis det f.eks. er muligt at indsætte et <br>, så kan jeg jo bare gøre det i asp-koden, VB-Script er muligvis stærkere til at håndtere tekst-strenge end ActionScript.
Avatar billede barklund Nybegynder
23. februar 2005 - 08:20 #6
Du kan også i VBScript indsætte almindelige linjeskift. Men jeg forstår dog ikke, hvorfor så mange bruger VBScript til ASP - når JScript er så meget enklere. Hvis du bruger JScript serverside, så kan jeg hjælpe dig - ellers ville jeg lige FUT'e over i ASP kategorien og spørge, hvordan du laver en wordwrap ved maks 45 tegn med \n som linjeskift (ville være dit præcise spørgsmål).

I PHP ville det se ud som:

$str = wordwrap($str, 45, "\n");

Det er jo nemt :)

--
Morten Barklund
Avatar billede tejs Nybegynder
23. februar 2005 - 08:32 #7
Ja, det må man sige..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester