Sous-chaîne de texte avec des balises HTML dans Javascript
Avez-vous une solution à la sous-chaîne de texte avec des balises HTML en Javascript?
Par exemple:
var str = 'Lorem ipsum <a href="#">dolor <strong>sit</strong> amet</a>, consectetur adipiscing elit.'
html_substr(str, 20)
//return Lorem ipsum <a href="#">dolor <strong>si</strong></a>
html_substr(str, 30)
//return Lorem ipsum <a href="#">dolor <strong>sit</strong> amet</a>, co
source d'informationauteur honzahommer
Vous devez vous connecter pour publier un commentaire.
Tenant compte du fait que analyse html avec la regex est une mauvaise idéevoici une solution qui ne fait que cela 🙂
EDIT: Juste pour être clair: Ce n'est pas une solution valide, il a été conçu comme un exercice qui fait très clémente hypothèses sur la chaîne d'entrée, et en tant que tel, doit être pris avec un grain de sel. Lire le lien ci-dessus et de voir pourquoi l'analyse html avec la regex ne peut jamais être fait.
Exemple: http://jsfiddle.net/danmana/5mNNU/
Remarque: patrick dw est la solution peut-être plus sûr quant à la mauvaise html, mais je ne suis pas sûr de la façon dont il gère les espaces blancs.
Utilisation:
Exemple: http://jsfiddle.net/2ULbK/4/
Fonction:
c'est la solution pour chacun des tags
Javascript a une sous-chaîne de la méthode. Il ne fait aucune différence si la chaîne contient des html.
voir http://www.w3schools.com/jsref/jsref_substr.asp
Utiliser quelque chose de similaire à
= str.replace(/<[^>]*>?/gi, '').substr(0, 20);
J'ai créé un exemple: http://fiddle.jshell.net/xpW9j/1/