Nicht sicher, ob dies in regexp unter Javascript getan werden kann, aber dachte, es wäre interessant zu sehen, ob es möglich ist. Also dachte ich, ich würde ein Stück von HTML aufräumen, um die meisten Tags zu entfernen, buchstäblich nur fallen lassen, so <H1><img><a href ....>
. Und das wäre relativ einfach (naja, stahl die Basis von einem anderen Beitrag, danke karim79 Remove HTML Tags in Javascript with Regex).Regexp Schleife und Logik in Javascript
Aber dann begann ich zu denken, gibt es einen Weg, wo ich die Regex-Ausführung steuern kann. Lassen Sie uns also sagen, dass ich bestimmte Tabs wie b, br, i beibehalten und H1-6 in b ändern möchte. So in Pseudo-Code, so etwas wie:
for (var i in inString.regex.hits) {
if (hits[i] == H1) {
hits[i] = b;
}
}
Das Problem ist, dass ich der Text das ist keine HTML-Tags zu bleiben, wie es ist, und ich will es nur standardmäßig ausgeschnitten. Eine Option wäre natürlich, diejenigen zu ändern, die ich behalten möchte. Sagen Sie die Änderung <b>
zu [[b]], sobald dies für alle Interessierten erledigt ist. Dann legen Sie sie wieder auf <b>
, sobald alle unbekannten entfernt wurden. So wie dies (nur für b, und nicht sicher, dass der folgende Code funktionieren würde):
function(inString, maxlength, callback){
console.log("Sting is " + inString)
console.log("Its " + inString.length)
var regex-remHTML = /(<([^>]+)>)/ig
var regex-hideB = /(<b>)/ig
var regex-showB = /([b])/ig
var outString = inString.replace(regex-hideB, "[b]");
outString = outString.replace(regex-remHTML, "");
outString = outString.replace(regex-showB, "<b>");
console.log("No HTML sting " + outString);
if (outString.length < maxlength){
callback(outString)
} else {
console.log("Lets cut first bit")
}
}
Aber wäre es möglich, klüger zu sein, Kabeljau ethat Schreiben hier sagt, ist ein peice von HTML-Tag, führen Sie diesen Code gegen das Match.
Für jede Manipulation von HTML anderen als sehr einfachen Fällen Sie einen Parser, anstatt regex vielleicht zu prüfen. –
Ich habe zuerst darüber nachgedacht, aber gibt es irgendwelche "konfigurierbaren". In diesem Fall ist der Sicherheitsaspekt nur die Hälfte. Der Grund dafür ist, dass der eintreffende HTML-Code aus einem Artikel stammt und der Code die erste "n" -Zahl von Zeichen annehmen muss, um den Artikel hübsch zu gestalten. – vrghost