Есть ли в 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.
}
}
1 answers
Привет@Скотт Б:
Это действительно больше похоже на Стековый поток вопрос, чем WordPress отвечает на вопрос. Я попробую это сделать, но если это не то, что вам нужно, я бы предложил удалить ваш вопрос здесь и разместить его по адресу SO.
Функция Replace()
в Javascript может принимать функцию в качестве аргумента. Бен Надель ( кто является настоящей рок-звездой jQuery/Javascript, по крайней мере, в моей книге) есть отличная статья, в которой рассказывается о том, как использовать Replace()
с обратным вызовом (найдите подзаголовок "Замена строки Javascript() - Функция замены"):