content = '5<x<div></div>'
В основном я ищу регулярное выражение, которое превратит строку, как указано выше, в 5<x<div></div>
5x<div></div>
все равно будет 5x<div></div>
. Я просто пытаюсь избежать незакрытых тегов html
Если есть такая библиотека, то я буду очень рад ее использовать, если она соответствует моей основной цели - попытаться избежать незакрытых тегов html.
Нет @AdamP., это не то, что я ищу. Это заменит все даже теги html. Он должен заменять только незакрытые HTML-теги, делая их фактическим знаком меньше или больше.
Ну, мы все знаем о парсинге HTML с помощью регулярных выражений...
Почему у вас вообще эта неоднозначная строка? Исправление неоднозначного синтаксиса постфактум по определению… сложно.
Это требование. Первоначально я пытаюсь минимизировать HTML-коды в NuxtJS Static Generate, но это не удастся из-за того, что >
и <
действуют как незакрытый HTML-тег.
Тогда «требование» несколько удалено от вменяемой реальности…
Так что @deceze, это действительно так плохо :)
Дайте мне ответ регулярного выражения, и я дам вам HTML-код, для которого он не сработает. Забудь это.
Вы, конечно, не первый человек, который пытается минимизировать статический HTML-код NuxtJS. Я бы посоветовал вам найти причину недопустимого вывода вместо того, чтобы пытаться исправить это симптоматически.
Ниже приведено хорошее решение, но я также попросил того, кто пишет эти требования, вручную использовать < и >
Это не самое красивое решение этой задачи, но оно работает.
var str = '5<x<div>s>7</div>';
for (var i = 0; i < 2; i++) {
if (i === 0) {
var str2 = str.replace(/</gi, ",,#*&,,<");
var spl = str2.split(",,#*&,,");
} else {
var str2 = str.replace(/>/gi, ">,,#*&,,");
var spl = str2.split(",,#*&,,");
}
replaceString(spl);
}
function replaceString(spl) {
for (let i = 0; i < spl.length; i++) {
if (spl[i].indexOf('<') > -1 && spl[i].indexOf('>') > -1) {
//.......
} else {
if (spl[i].indexOf('<') > -1) {
spl[i] = spl[i].replace(/</gi, "<");
}
else if (spl[i].indexOf('>') > -1) {
spl[i] = spl[i].replace(/>/gi, ">");
}
}
}
str = spl.join('');
}
console.info(str);
Ищите это: css-tricks.com/snippets/javascript/htmlentities-for-javascript