2014-02-19 4 views
0

Мне нужно регулярное выражение, чтобы проверить, не отображается ли символ в двойных кавычках ("). Например, если у меня есть что-то вроде <b>"ABC<DEF"</b>, тогда регулярное выражение должно совпадать .. < обоих тегов, и он не должен совпадать < между двойными кавычкамиРегулярное выражение для символа, не отображающегося между двойными кавычками

+3

Вы не должны правильно объяснять свою цель. * Символы, не отображающиеся между двойными кавычками * i n ваш пример: 'b','> ','/'- но вы говорите, что RegEx должен соответствовать' <'? – tenub

+0

Вы пытаетесь просто удалить теги HTML? Может быть, этот пост может помочь? http://www.dotnetperls.com/remove-html-tags – Cesar

ответ

0

Я предполагаю, что вы имели в виду «не должны совпадать < между двойными кавычками» В этом случае опережения делает трюк:

s = '<b>"ABC<DEF" match<this "ignore<this" end' 
s.replace(/<(?=("[^"]*"|[^"]+)+$)/g, "@") 

// "@b>"ABC<DEF" [email protected] "ignore<this" end" 
+0

Да. Я исправил это сейчас. Спасибо, это работает! – user2546340

+0

Когда я использовал ту же функцию на '" ABC ', она заменила только первую' <'i.e, в результате получилась строка' @b> "ABC'. Почему это так? Ожидаемая результирующая строка должна быть '@b>" ABC '. – user2546340

+0

@ user2546340: уверенный? Я получаю правильные результаты. Забота о создании jsfiddle? – georg

Смежные вопросы