Есть ли в javascript эквивалент обратного вызова PHP preg replace?


У меня есть функция php, которая выполняется внутри add_meta_box() в редакторе контента WP (см. Ниже), которую я хотел бы преобразовать в javascript, чтобы она выполнялась по нажатию кнопки (по требованию или автоматически при загрузке) для преобразования содержимого публикации в режиме реального времени (без публикации на сервере).

Существует ли эквивалентный метод, установленный в javascript?

add_meta_box('mycontentfilter', __('My Content Filter'), 'my_content_filter', 'post', 'side', 'high'); 

function my_content_filter()
{
    global $post;
    $mykeyword = 'find this phrase';
    $post->post_content = preg_replace_callback("/\b($mykeyword)\b/","doReplace", $post->post_content);
}


// the callback function
function doReplace($matches)
{
    static $count = 0;
    switch($count++) 
    {
        case 0: return '<b>'.$matches[1].'</b>';   // 1st instance, wrap in bold
        case 1: return '<em>'.$matches[1].'</em>'; // 2nd instance, wrap in italics
        case 2: return '<u>'.$matches[1].'</u>'; // 3rd instance, wrap in underline
        default: return $matches[1];              // don't change others.
    }
}
Author: Scott B, 2010-10-29

1 answers

Привет@Скотт Б:

Это действительно больше похоже на Стековый поток вопрос, чем WordPress отвечает на вопрос. Я попробую это сделать, но если это не то, что вам нужно, я бы предложил удалить ваш вопрос здесь и разместить его по адресу SO.

Функция Replace() в Javascript может принимать функцию в качестве аргумента. Бен Надель ( кто является настоящей рок-звездой jQuery/Javascript, по крайней мере, в моей книге) есть отличная статья, в которой рассказывается о том, как использовать Replace() с обратным вызовом (найдите подзаголовок "Замена строки Javascript() - Функция замены"):

 2
Author: MikeSchinkel, 2010-10-29 10:48:56