Как внедрить PHP Parser в .html() jQuery для ввода текста в режиме реального времени

Я пытаюсь создать предварительный просмотр в реальном времени для текстового редактора, который я создал, но я не могу придумать способ анализа текста внутри элемента предварительного просмотра, чтобы он изменил теги BBCodes (например, [b] [/b]) в HTML.

https://jsfiddle.net/ElenaMcDowell/5hzndj7v/3/

<div class = "previewDocument-box">
    <h1>Preview</h1>
    <div class = "previewDocument-text"></div>
</div>

<textarea id = "ECEditor" class = "editor-textarea" style = "height: 200px;" name = "editor-text"></textarea>

<script>
    $('#ECEditor').on('input', function() {
        var ECEtext = $(this).val();
        $('.previewDocument-text').html(ECEtext);
    });
</script>

Обновлено: мне нужно преобразовать текст, введенный в текстовую область (#ECEditor) и который позже помещается в div (.previewDocument-text), в HTML. У меня уже есть функция PHP (называемая "BBCode2HTML()"), которая преобразует BBCode в HTML (например, [b]Hi[/b] ---> Hi), но я не знаю, как реализовать эту функцию в jQuery. который создает форму «ввода предварительного просмотра в реальном времени». :(

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
60
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Мы можем заменить эти теги BBCodes HTML-тегами.

$('#ECEditor').on('input', function() {
     var text = $(this).val();
     var bb =  [
        /\[b\](.*?)\[/b\]/ig,
        /\[i\](.*?)\[/i\]/ig,
        /\[u\](.*?)\[/u\]/ig
    ];
    
    var bb_html = [
        '<b>$1</b>',
        '<em>$1</em>',
        '<u>$1</u>'
    ];
 
    for (var i =0;i<bb.length;i++) {
      text = text.replace(bb[i], bb_html[i]);
    }
     $('.previewDocument-text').html(text);
    });
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class = "previewDocument-box">
    <h1>Preview</h1>
    <div class = "previewDocument-text"></div>
</div>
<textarea id = "ECEditor" class = "editor-textarea" style = "height: 200px;" name = "editor-text"></textarea>

Второй метод будет заключаться в отправке введенного значения на серверную часть через ajax и использовании PHP. preg_replace.

preg_replace(['/[b]/i', '/[/b]/i'], ['<b>', '</b>'], $text);

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