Kan man fixa en funktion som klipper efter ett visst antal tecken men inte i mitten av ett ord eller om man är i en oanslutad html tagg? Jo jag vet... Har försökt men inte lyckats... Du kan använda regular expression med ett mönster som "<([^ >]).*?>.*?</\1>" för att identifiera taggarna och antingen loopa igenom resultatet för att plocka ihop lagom mycket av texten, eller välja en brytpunkt och loopa igenom resultatet för att se till att punkten inte ligger i en tagg. Nu är det så att jag vill ha ut en viss mängd text men om den mängden text är i mellan ex. <i> & </i> så ska den strunta i mängden text och klippa istället där </i> slutar. Detta är en liten text som jag sedan kommer att klippa... <i>babbel babbel babbel babbel babbel.</i> Tjenare tjenare Så det du vill göra i praktiken är alltså att allting som står mellan taggarna ska räknas som ett enda ord? Nu kommer det ju vara t.ex. [i] men det är ju samma princip.... Då får du använda uttrycket som jag hade i det förra exemplet: <([^ >]).*?> Göran. Det skulle den inte... Du får istället använda den metod som jag skrivit om i tråden.Klippa mening men inte html taggar?
Sv:Klippa mening men inte html taggar?
Är inte så bra på det... Du har inget exempel eller nåt?Sv: Klippa mening men inte html taggar?
Här är en artikel om hur man kan loopa igenom ett sökresultat:
http://guffa.com.loopiadns.com/Programming_article.asp?id=5
Sedan har du ju även problemet att du inte bör bryta mitt i ett html-kodat tecken, som till exempel < eller ö...Sv:Klippa mening men inte html taggar?
Sv:Klippa mening men inte html taggar?
Sedan om man vill klippa den efter 65 tecken så hamnar den mitt mellan <i> och </i>..
Alltså den slutar <i>babbel
Den är satt på att inte klippa ifall den kommer mitt i ett ord men hur gör man så att den hoppar över hela delen som är innuti så att den hamnar bakom > i </i> taggen..
bra förklaring nog?Sv: Klippa mening men inte html taggar?
Gör ett regular expression som matchar antingen ett ord eller en tagg med innehåll, och använd den för att kolla var du kan bryta texten. Gör en matchning så får du ut ett resultat som beskriver orden i strängen.
Ifall det är enkla taggar utan egenskaper, som <b > <i> <u> et.c., så kan du använda ett enkelt mönster:
"(?:\S+|<(\w+)>[\w\W]*?</\1>)"
Om jag gjort rätt så skulle resultatet (Matches) för ditt exempel då innehålla:
1: "Detta"
7: "är"
10: "en"
13: "liten"
19: "text"
24: "som"
28: "jag"
32: "sedan"
38: "kommer"
45: "att"
49: "klippa..."
59: "<i>babbel babbel babbel babbel babbel.</i>"
102: "Tjenare"
110: "tjenare"Sv:Klippa mening men inte html taggar?
Men hur blir det om man får en egenskap också ex. <font color=red> ([color=red]).Sv: Klippa mening men inte html taggar?
Sv:Klippa mening men inte html taggar?
Jag håller just nu på med samma problematik, och jag har laddat ner din funktion Shorten ,som iof verkar fungera väldigt bra.
Men hur skulle den se ut, om man vill se till att den inte bryter mitt i någon tag(url-tag eller img tag).Sv: Klippa mening men inte html taggar?