2017-11-28 9 views
-1

Ich habe eine Zeichenfolge, die ohne Tags aus HTML kommt aber mit entkam Symbole, wie:nur das erste Vorkommen mit Javascript

abc&symbol1;def&symbol2;ghi&symbol3;jkl... 

In JavaScript oder Typoskript, wie ich alle Sequenzen wie &symbolN; mit einem festen Zeichen ersetzen wie X so erhalte ich:

abcXdefXghiXjkl... 

(durch die Art und Weise, ist das Ziel die Länge eines Strings mit unterschiedlichen HTML zu bekommen maskierten Zeichen wie £, so dass jeder von ihnen wie ein Zeichen gezählt!)

Update: vielleicht habe ich nicht genau erklärt: symbol1, symbol2, ... bedeuten nicht, dass "symbol" string wiederholt, aber völlig unterschiedliche Symbole, die nicht wiederholen, z. "abc £ def   ghi € ..." Also keine Möglichkeit, ein sich wiederholendes Textmuster wie "& Symbol;"

+0

Kennen Sie Regex? Übrigens möchten Sie nur das erste Vorkommen (laut Titel) oder alle Vorkommen (Beschreibung) ersetzen? – RaphaMex

+0

Regex ist dein Freund hier '& Symbol \ d +;' –

+0

Unklar was du fragst, nur zuerst? Oder alle? Hast du versucht, nach einer Lösung zu suchen, bevor du fragst? – webdeb

Antwort

2

Gerade Länge zu berechnen, können Sie betrügen, wie Sie sagen:

html.replace(/&[^;]+;/, 'X').length 

Um richtig HTML in Text zu umwandeln, sollte man einen HTML-Parser verwenden, nicht regexp. Zum Beispiel im Browser,

let e = document.createElement('div'); 
e.innerHTML = html; 
let text = e.textContent; 
+0

Großartig, vielen Dank! – user3372174

Verwandte Themen