Я хочу получить способ получить весь контент между одним открытым тегом span и тегом close. Проблема в том, что когда-нибудь я могу иметь вложенный диапазон, и я хочу быть уверенным, что мое регулярное выражение не останавливает первый конечный интервал, который он видит.Использование XRegExp.matchRecursive для вложенных пролетов
Чтобы увидеть мою проблему взглянуть на это: Regex101 : nested span
Я хочу быть уверен, что я получаю все между открытым и с закрывающим тегом. независимо от того, сколько </span>
Я могу найти внутри.
Я нашел библиотеку, сделанную Стивеном Левитаном, которая могла бы достичь моих желаний. Проблема в том, что пример является базовым, и я не уверен, что смогу добиться того, чего хочу.
Я использую метод XregExp.matchRecursive. В этом примере они дают начальный тег и конечный тег. Мой стартовый тег немного сложный, он выглядит так: <span style=\\?"color:([a-zA-Z\s]*?)\\?">
. Проблема заключается в том, когда я выполняю этот метод с этим разделителем, я получаю эту ошибку: строка содержит несбалансированные разделители. Тестируемая строка:
<p style=\"text-align:justify\">
<span style=\"font-size:12pt\">
<span style=\"color:Green\">
<span style=\"font-family:Verdana\">There is some content for a mm advertisment.There is some co</span>
<span style=\"font-family:Times New Roman\">ntent for a mm advertisment.</span>
</span>
</span>
</p>
Я думаю, что моя проблема в том, что в регулярном выражении я использую в качестве стартового разделителя. Как объясняют в doc, мы должны добавить уровень escape-косая черта в регулярном выражении. Вот почему я пытаюсь использовать это регулярное выражение как разделитель начала: <span style=\\\\?"color:([a-zA-Z\\s]*?)\\\\?">
. Все еще не работает. Я не вижу, как я могу это сделать, чтобы найти этот метод, чтобы найти все между диапазоном, у которого есть атрибут стиля цвета и его тег close.
Возможно, у кого-нибудь есть решение?
Почему вы используете для этого регулярные выражения? Если это допустимый HTML, используйте функции DOM. –
Конечно, с jquery я могу сделать это в одной строке кода с помощью метода html(). Но мне нужно сделать эту серверную часть в среде Wakanda. – Ganbin
Я не говорю о jquery, чистый JavaScript тоже может это сделать; конечно, это также доступно в серверной среде. –