web-dev-qa-db-fra.com

Est-ce que javascript a un équivalent de PHP preg_replace_callback?

J'ai une fonction php qui s'exécute à l'intérieur d'une add_meta_box () dans l'éditeur de contenu WP (voir ci-dessous) que je voudrais convertir en javascript afin qu'elle s'exécute sur un clic de bouton (à la demande ou automatique au chargement ) pour convertir le contenu de la publication en temps réel (sans publication sur le serveur).

Existe-t-il une méthode équivalente définie en 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.
    }
}
3
Scott B

Bonjour @ Scott B :

C’est vraiment plus une question StackOverflow qu’une question WordPress Answers. Je vais essayer, mais si ce n'est pas ce dont vous avez besoin, je suggère de supprimer votre question et de la poser à SO.

La fonction Replace() en Javascript peut prendre une fonction en argument. Ben Nadel (qui est un vrai rockstar jQuery/Javascript, au moins dans mon livre) a un excellent article couvrant comment utiliser Replace() avec un rappel (recherchez le sous-tête "Remplacer la chaîne Javascript () - (Remplacer la fonction" ):

2
MikeSchinkel