Left funktionen og HTML tags

Tags:    .net

Hej allesammen!

Jeg sidder i øjeblikket med et projekt, hvor jeg skal lave en nyhedsside. Forsiden laver et udtræk med de nyeste nyheder, og her viser jeg så kun de første 400 tegn af hele teksten, og laver et link ind til nyheden. Ganske som man ville gøre i så mange andre tilfælde.

Problemet opstår hvis teksten bryder midt i et HTMl tag, hvis den fx. bryder teksten uden at et <b> tag bliver afsluttet, vil den gøre resten af teksten på hele siden fed.

Så mit spørgsmål er nu, om der er nogen der kender til en smart funktion der kan undgå dette?
Det hjælper naturligvis ikke noget bare at erstatte samtlige HTML tags, så det skal være noget med at man fortæller den at den skal cutte teksten efter et afsluttet tag, kunne jeg forestille mig?


Håber der er nogen som har en løsning :)



7 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Det her er et forsøg på en php4 løsning af det jeg sagde
Fold kodeboks ind/udKode 




Uh! Har haft samme problem med PHP... Der kan man bare bruge striptags() eller hvad dennu hedder... Prøv at søge "striptags .NET"



Hej Martin

Når du viser et udsnit af en nyhed vil det være en god idé at strippe teksten for HTML tags som start. Det kan du gøre ved en simpel regular expression:

string strResult = Regex.Replace(strInput,@"<(.|\\n)*?>",string.Empty);

Happy coding!



Jeg burde nok lige fortælle at det er asp.net jeg bruger :)

striptags? hmm den kender jeg ikke lige. Umiddelbart lyder det også som en funktion, der ville gå ind og fjerne noget givent tekst. Men det er da værd at prøve!



kender ikke ASP, men umiddelbart kunne du vel bare køre teksten igennem fra start til slut. og bruge en stak af uafsluttet tags.

hvis du støder på < og et bogstav, f.eks <a
smider du texten fra og med a til space i en stack plus false.
støder du på /> eller </ fjerner du øverste element i stacken.
søder du på > men ikke /> sætter de false til true i toppen af stacken.
når du når til enden af teskten tømmer du stacken, ved elementer af typen text,true ligger du teksten </text> til outputtet, hvis det øverste element er text,false ligger du det /> til teksten.

striptags kan ikke bruges da den gør hvad dens navn siger og fjerner tags fra teksten.



Indlæg senest redigeret d. 29.04.2008 23:27 af Bruger #5620
så skal han også lige huske at converter en evt tilbage værende < til ingenting eller til &lt;.
ellers går det formentlig galt hvis udraget er f.eks har formen:

...<img src




Indlæg senest redigeret d. 30.04.2008 11:54 af Bruger #5620
Tak for svarende I to! Jeg har kigget nærmere på dit løsningsforslag, Nørden, og jeg tror mig og en mate er kommet frem til en løsning, det bliver godt nok en noget lang kode, men hvis bare den virker kan man jo bare smide den ind som en global funktion.
Tak for svarende allesammen!

Hvis der er nogen som mener de har en bedre og kortere løsning, vil jeg da meget gerne se den :)



Indlæg senest redigeret d. 30.04.2008 13:35 af Bruger #13685
t