У меня есть некоторый экранированный 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, а затем повторно убежать, чтобы соответствовать. Его нужно избегать.