j'ai un dat long chaîne peut contenir des balises html application HTMLEncode va encoder toutes les balises mais je veux cette méthode pour laisser quelques balises spécifiques intactes comment est-il possibleHTMLEncode() pour un balises spécifiques seulement
Répondre
Encodez la chaîne entière, puis décodez les tags spécifiques que vous ne voulez pas encoder.
Si vous autorisez uniquement les balises simples sans aucun attribut (comme par exemple <b>
et <u>
), alors vous pouvez les décoder en utilisant un Replace
simple.
En supposant que votre code HTML d'entrée est bien formé, vous pouvez utiliser une expression régulière. Cela est possible car vous n'essayez pas de trouver des paires correspondantes dans les balises imbriquées et vous ne vous inquiétez pas des balises qui se produisent dans les commentaires HTML. Sinon, une expression régulière serait un mauvais candidat pour ce travail.
var allowedTags = new[] { "a", "abbr", "br", /* etc. */ };
var output = Regex.Replace(input,
// Matches a single start or end tag
@"</?(\w+)[^>]*>",
// If the tag is one of the allowed tags...
me => allowedTags.Contains(me.Groups[1].Value)
// ... keep it unchanged
? me.Value
// otherwise, HTML-encode it
: HttpServerUtility.HtmlEncode(me.Value),
RegexOptions.Singleline);
Si votre HTML provient d'utilisateurs, vous ne pouvez pas supposer qu'il est bien formé. Dans un tel cas, je recommanderais une solution plus robuste, par ex. en utilisant le Html Agility Pack.
- 1. Insérer un élément dans des balises spécifiques
- 2. Suppression de balises XML spécifiques
- 3. tri seulement noeuds XML spécifiques
- 4. Regex trouver des balises spécifiques pour remplacer dans une chaîne
- 5. HtmlEncode UTF-8
- 6. Erreur HtmlEncode sur une vue générée
- 7. Remplacement de balises HTML spécifiques à l'aide de Regex
- 8. Trouver tout ce qui est pas entre les balises spécifiques
- 9. PHP: Filtrer les balises html spécifiques d'un texte donné
- 10. Comment htmlencode-tu en utilisant le pack d'agilité html?
- 11. Supprimer des balises HTML spécifiques et des caractères non-ASCII
- 12. Filtrer les éléments qui n'ont pas seulement des enfants spécifiques
- 13. Pouvez-vous faire HtmlDecode & HtmlEncode dans Silverlight?
- 14. utilisation HtmlEncode dans Détails Afficher TemplateItem contrôle
- 15. MySQL - Sélectionnez des lignes spécifiques et ensuite seulement les randomiser
- 16. HtmlEncode de la bibliothèque de classes
- 17. PHP: Escape Quotes SEULEMENT en dehors des balises HTML (Regex)
- 18. Astuce de jQuery: Attachement à quelques balises d'ancrage seulement
- 19. Remplacer les nouvelles lignes avec des balises BR, mais seulement dans les balises PRE
- 20. Étendre pour un appel de bloc seulement
- 21. comment charger un css pour Safari seulement?
- 22. Page d'erreur personnalisée dans Rails pour des actions spécifiques
- 23. Remplacer le texte si elle est pas à l'intérieur de certaines balises HTML spécifiques
- 24. Désactivation de règles Resharper spécifiques pour des fichiers spécifiques
- 25. Indicateurs de compilateur spécifiques pour des fichiers spécifiques dans Xcode
- 26. Git SVN rebase pour les tags seulement
- 27. UIDeviceFamily seulement pour l'iphone
- 28. Initialisateurs spécifiques à l'environnement pour les rails?
- 29. Avez-vous HtmlEncode pendant l'entrée ou la sortie?
- 30. Éléments spécifiques pour CSS: cible?