Как преобразовать строки HTTP в URL-адреса, а также разрешить форматирование в текстильном стиле без конфликтов?

Я создаю минимальную версию процесса преобразования текста в разметку, очень похожую на Textile. Я успешно преобразовал полужирный, курсив, зачеркнутый текст (с *, _ и - соответственно), но я также использую следующее выражение для автоматического преобразования строк HTTP в ссылки:

/([^\(])(https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w\/_\.\-]*(\?\S+)?)?)?)/

Проблема в том, что если строка HTTP содержит, например, тире, выражение для зачеркивания (/\-([^\*]+?)\-/), что приводит к изменению URL-ссылки:

site.com/path-with-dashes в site.com/path<del>with</del>dashes

Каково лучшее решение для достижения обоих процессов вместе? Я бы предположил, что смена зачеркнутого выражения, требующего, чтобы символ перед чертой был пробелом или началом строки, сработал бы, но я не могу добиться этого в одном выражении.

0 ответов

Другие вопросы по тегам