¿JavaScript tiene un equivalente a preg_replace_callback de PHP?
Tengo una función en php que se ejecuta dentro de un add_meta_box() en el editor de contenido de WP (ver abajo) que me gustaría convertir a javascript para que se ejecute al hacer clic en un botón (bajo demanda vs automático al cargar) y convierta el contenido del post en tiempo real (sin enviar al servidor).
¿Existe un método equivalente en javascript?
add_meta_box('mycontentfilter', __('Mi Filtro de Contenido'), 'my_content_filter', 'post', 'side', 'high');
function my_content_filter()
{
global $post;
$mykeyword = 'encuentra esta frase';
$post->post_content = preg_replace_callback("/\b($mykeyword)\b/","doReplace", $post->post_content);
}
// la función de callback
function doReplace($matches)
{
static $count = 0;
switch($count++)
{
case 0: return '<b>'.$matches[1].'</b>'; // 1ra instancia, envolver en negrita
case 1: return '<em>'.$matches[1].'</em>'; // 2da instancia, envolver en cursiva
case 2: return '<u>'.$matches[1].'</u>'; // 3ra instancia, envolver en subrayado
default: return $matches[1]; // no cambiar las demás.
}
}

Hola @Scott B:
Esto es más bien una pregunta para StackOverflow que para WordPress Answers. Intentaré ayudarte, pero si no es lo que necesitas, te sugiero que elimines tu pregunta aquí y la publiques en SO.
La función Replace()
en Javascript puede aceptar una función como argumento. Ben Nadel (quien es un auténtico rockstar de jQuery/Javascript, al menos en mi opinión) tiene un gran artículo que explica cómo usar Replace()
con un callback (busca el subtítulo "Javascript String Replace() - Reemplazo con Función"):
