170 похожих чатов

Привет! Мне нужно проверить нет ли в тексте недопустимых html-тегов.

Я допёр пока только до такой регулярки:
<(p|span|em|strong|ol|ul|li)(\s.*?)?>
. Она находит те теги, которые можно. Осталось как-то инвертировать эти теги и все будет работать. Помогите пожалуйста, как это сделать?
https://regex101.com/r/gV1EQQ/1

15 ответов

7 просмотров

Так если надо проверить нет ли их, что мешает проверить есть ли они и сделать !

Совет: не используй регулярки для парсинга html) Я ведь могу например написать <a url="<notAllowedTag/>"/> и твоя прога будет говорить, мол, недопустимый тег

А может лучше список допустимых тегов, и не регулярками, а предназначенными для этого инструментами? https://github.com/mganss/HtmlSanitizer

Alex- Автор вопроса
Andrew Shurunov
Совет: не используй регулярки для парсинга html) Я...

У меня на сайте есть встроенный редактор текста, с помощью него можно максимум сделать текст жирным и сделать нумерованный список. Там по идее не должно быть таких случаев

Alex- Автор вопроса
SomebodyOdd
А может лучше список допустимых тегов, и не регуля...

Хмм, сейчас гляну, но что-то мне неохота для такой задачки либу тянуть

Alex
У меня на сайте есть встроенный редактор текста, с...

Иногда регулярки можно юзать для html, если задача совсем простая. Но часто на такие вопросы кидают культовый ответ: https://stackoverflow.com/a/1732454/5055884

Alex
Хмм, сейчас гляну, но что-то мне неохота для такой...

А парсить иерархические структуры не предназначенными для этого регулярками - это, значит, хочется? =)

Alex- Автор вопроса
Alex- Автор вопроса
SomebodyOdd
А парсить иерархические структуры не предназначенн...

А мне и не надо иерархическую структуру парсить))

Alex
А мне и не надо иерархическую структуру парсить))

Судя по описанию редактора - надо предотвратить нехорошие теги в том, что приходит потом бекенду. Это регулярками надёжно не закрывается - либо будет пропускать, либо будет ложно срабатывать. Пожалуйста, ради рассудка того, кто потом будет это кроме вас читать и поддерживать, притяните либу и не страдайте регулярками для html =)

Alex- Автор вопроса
SomebodyOdd
Судя по описанию редактора - надо предотвратить не...

Хорошо, спасибо за совет, сейчас посмотрю что там за либа))

Alex
Хорошо, спасибо за совет, сейчас посмотрю что там ...

Простой System.Xml.Document справится Им правда не очень удобно пользоваться, так что лучше глянь либу

Andrew Shurunov
Простой System.Xml.Document справится Им правда не...

Вряд ли им можно надёжно разобрать HTML, увы.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта