Не уверен, что это можно сделать в regexp под javascript, но подумал, что было бы интересно посмотреть, возможно ли это. Так что подумал, что я убираю кусок html, чтобы удалить большинство тегов, буквально просто отбрасывая их, поэтому <H1><img><a href ....>
. И это было бы относительно просто (хорошо, украл основу из другого поста, спасибо karim79 Remove HTML Tags in Javascript with Regex).regexp looping и logic в javascript
function(inString, maxlength, callback){
console.log("Sting is " + inString)
console.log("Its " + inString.length)
var regex = /(<([^>]+)>)/ig
var outString = inString.replace(regex, "");
console.log("No HTML sting " + outString);
if (outString.length < maxlength){
callback(outString)
} else {
console.log("Lets cut first bit")
}
}
Но потом я начал думать, есть способ, которым я могу управлять выполнением регулярных выражений. Так что скажем, что я хочу сохранить определенные вкладки, такие как b, br, i и, возможно, изменить H1-6 на b. Таким образом, в псевдокоде, что-то вроде:
for (var i in inString.regex.hits) {
if (hits[i] == H1) {
hits[i] = b;
}
}
Вопрос заключается в том, что я хочу, чтобы текст не тот HTML тегов, чтобы остаться, как есть, и я хочу, чтобы просто вырезать по умолчанию. Конечно, одним из вариантов было бы изменить те, которые я хочу сохранить. Произнесите изменение <b>
на [[b]], как только это будет сделано для всех заинтересованных. Затем верните их обратно в <b>
после того, как все неизвестные были удалены. Так как это (только для Ь, а не определенный код ниже будет работать):
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")
}
}
Но это было бы возможно, чтобы быть умнее, писать треск ethat говорит вот peice из HTML тега, запустить этот код против матч.
для любой манипуляции HTML, кроме очень простых случаев, вы можете рассмотреть возможность использования синтаксического анализа, а не регулярное выражение. –
Сначала я думал об этом, но есть ли «настраиваемые». В этом случае аспект безопасности составляет лишь половину. Причина в том, что HTML-код, который входит в него, - это статья, и ожидается, что код примет первое «n» количество символов и сделает его привлекательным для статьи. – vrghost