web-dev-qa-db-ja.com

JavaScriptにはPHPのpreg_replace_callbackと同等のものがありますか?

WPコンテンツエディタ(下記参照)のadd_meta_box()内で実行されるphp関数があり、それをボタンクリックで実行するように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.
    }
}
3
Scott B

こんにちは@ Scott B

これは実際にはWordPress Answersの質問よりも StackOverflow の質問のほうが多いです。私はそれを突き刺すつもりですが、これがあなたが必要とするものではないならば、私はあなたの質問をここで削除してSOにそれを置くことをお勧めします。

JavascriptのReplace()関数は引数として関数を取ることができます。 Ben Nadel(少なくとも私の本では、jQuery/Javascriptのロックスターです)は素晴らしい記事を持っていますコールバックでReplace()を使う方法をカバーする(サブヘッドを探す "Javascript String Replace() - Function Replace"):

2
MikeSchinkel