JavaScript are un echivalent pentru preg_replace_callback din PHP?

29 oct. 2010, 04:57:16
Vizualizări: 671
Voturi: 3

Am o funcție PHP care rulează într-un add_meta_box() în editorul de conținut WordPress (vezi mai jos) pe care aș dori să o convertesc în JavaScript, astfel încât să se execute la click pe un buton (la cerere vs automat la încărcare) pentru a converti conținutul postării în timp real (fără a trimite la server).

Există un set de metode echivalente în 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);
}


// funcția de callback
function doReplace($matches)
{
    static $count = 0;
    switch($count++) 
    {
        case 0: return '<b>'.$matches[1].'</b>';   // prima instanță, încadrează în bold
        case 1: return '<em>'.$matches[1].'</em>'; // a doua instanță, încadrează în italic
        case 2: return '<u>'.$matches[1].'</u>'; // a treia instanță, încadrează în underline
        default: return $matches[1];              // nu modifica altele.
    }
}
1
Comentarii

Nimic personal, dar am votat pentru închidere pentru că aceasta este într-adevăr legată de Javascript în general, nu de WordPress. Stack Overflow are multe întrebări pe această temă. Dacă nu sunteți de acord, vă rugăm să vă alăturați discuției pe Meta!

Jan Fabry Jan Fabry
29 oct. 2010 15:07:28
Toate răspunsurile la întrebare 1
1

Salut @Scott B:

Aceasta este mai degrabă o întrebare pentru StackOverflow decât pentru WordPress Answers. O să încerc să te ajut, dar dacă nu e ceea ce cauți, te sfătuiesc să ștergi întrebarea de aici și să o postezi pe SO.

Funcția Replace() din Javascript poate primi o funcție ca argument. Ben Nadel (care este un adevărat rockstar în jQuery/Javascript, cel puțin în opinia mea) are un articol excelent care explică cum să folosești Replace() cu un callback (caută subcapitolul "Javascript String Replace() - Function Replace"):

29 oct. 2010 13:48:56
Comentarii

Exemplu: "how now, brown cow".replace(/(o)(.)/g, function(match, first, next){ return first + next.toUpperCase(); }); // returnează "hoW noW, broWn coW"

User User
29 oct. 2010 16:10:25