Обрезать первый и последний тег с помощью JavaScript, если это один и тот же тег - PullRequest
0 голосов
/ 12 января 2011

Я пытаюсь удалить теги из строки:

"<p>string</p>" must be converted to "string"

Я нашел решение просто обрезать первый и последний теги или все теги, а затем

"<p>string1</p><p>string2</p>" converts to "string1</p><p>string2"

Я хочу проверитьстрока, что-то вроде

"IF last </p> tag is closing tag for first <p> tag THEN crop"

Можно ли это сделать с помощью регулярных выражений?Если нет, я думаю, что формула должна выглядеть примерно так: <p> tags equals 1, </p> equals -1. Я начинаю суммировать эти числа с конца строки и останавливаюсь, когда сумма равна нулю.Если точка, где я останавливаюсь - это конец строки, то это один тег, и мне нужно его обрезать.В противном случае это разные теги.Но я не знаю, как его кодировать, помогите пожалуйста.

Ответы [ 2 ]

0 голосов
/ 12 января 2011

Я думаю, что сделал эту задачу слишком сложной.Я забыл, что тег <p> не может быть в другом <p>.И тогда я могу просто проверить

if ($("#my_div>p").length == 1) {
     // crop surrounding <p>
}

Спасибо за ваши ответы и извините за глупый вопрос, мне просто нужно больше спать.

0 голосов
/ 12 января 2011

Я знаю, что @drachenstern опубликовал этот комментарий, в значительной степени отвечая на ваш вопрос, но все же.Вы можете использовать довольно простое регулярное выражение для функции replace().Эта маленькая функция должна помочь.

function stripTags(str) {
    return str.replace(/<[^<]+?>/g, '');
}
...