У меня есть некоторый экранированный HTML:
<img border='0' />
Я пытаюсь сопоставить и заменить полные escape-последовательности, такие как '
, но не частичные, например 39
, так как 39
на самом деле не находится в неэкранированной строке. По сути, каждая escape-последовательность должна обрабатываться как один токен.
Это регулярное выражение JS. Есть ли способ исключить совпадения между &
и ;
, продолжая принимать последовательности, которые включают оба этих символа?
Желаемые результаты:
- Поиск
<img border='0' />
дляlt
: нет соответствия. - Поиск
<img border='0' />
для39
: Нет соответствия. - Поиск
<img border='0' />
для'
: соответствие. - Поиск
<img border='0' />
дляborder='
: соответствие.
Текущий код:
> var str = '<img border='0' />'
> str.replace(/(border)/gi, '|$1|')
'<img |border|='0' />' // ok
> str.replace(/(39)/gi, '|$1|')
'<img border=�|39|;0�|39|; />' // not ok
Примечание: Я не могу unescape, а затем повторно убежать, чтобы соответствовать. Его нужно избегать.