character count minus HTML-Zeichen C #
Ich versuche herauszufinden, wie die Anzahl der Zeichen in einer Zeichenfolge gezählt, die Zeichenfolge abgeschnitten und dann zurückgegeben werden kann. Ich benötige diese Funktion jedoch, um HTML-Tags NICHT zu zählen. Das Problem ist, dass, wenn HTML-Tags gezählt werden und sich der Kürzungspunkt in der Mitte eines Tags befindet, die Seite fehlerhaft angezeigt wird.
Das ist was ich bisher habe ...
public string Truncate(string input, int characterLimit, string currID) {
string output = input;
// Check if the string is longer than the allowed amount
// otherwise do nothing
if (output.Length > characterLimit && characterLimit > 0) {
// cut the string down to the maximum number of characters
output = output.Substring(0, characterLimit);
// Check if the character right after the truncate point was a space
// if not, we are in the middle of a word and need to remove the rest of it
if (input.Substring(output.Length, 1) != " ") {
int LastSpace = output.LastIndexOf(" ");
// if we found a space then, cut back to that space
if (LastSpace != -1)
{
output = output.Substring(0, LastSpace);
}
}
// end any anchors
if (output.Contains("<a href")) {
output += "</a>";
}
// Finally, add the "..." and end the paragraph
output += "<br /><br />...<a href='Announcements.aspx?ID=" + currID + "'>see more</a></p>";
}
return output;
}
Aber ich bin damit nicht zufrieden. Gibt es einen besseren Weg, dies zu tun? Wenn Sie eine neue Lösung für dieses Problem anbieten könnten oder vielleicht Vorschläge dazu, was ich zu dem, was ich bisher habe, hinzufügen könnte, wäre das großartig.
Disclaimer: Ich habe noch nie mit C # gearbeitet, daher kenne ich mich mit den Konzepten für die Sprache nicht au
Danke, Hristo