9
votes

JavaScript Remplacer () et 1 $

J'essaie de créer un script qui recherche un modèle en texte et enveloppez une balise autour de la chaîne qu'il trouve.

$(".shop_attributes td").each(function () {
    $(this).html(function(i, html) {
        return html.replace(/E[0-9]{3,4}/g, "<strong>$1</strong>");
    });
});


0 commentaires

3 Réponses :


11
votes

Vous devez capturer la correspondance avant de pouvoir l'utiliser. Utilisez des parenthèses: xxx

js ridiculement simplifié JS Fiddle Demo . < / p>


2 commentaires

Merci une tonne, j'ai passé 3 heures à frapper ma tête contre le clavier.


Oui, cela m'a fallu un moment aussi quand j'apprendais des expressions régulières. Il m'a fallu encore plus longtemps pour comprendre que c'est est vraiment , malgré ce que les gens disent, une magie noire et difficile ...



1
votes

Enveloppez le groupe que vous souhaitez capturer entre crochets:

/(E[0-9]{3,4})/g


0 commentaires

4
votes

Une autre option consiste à utiliser $ & code>, qui représente l'ensemble de la correspondance ( 0 $ 0 code> dans d'autres saveurs):

html.replace(/E[0-9]{3,4}/g, "<strong>$&</strong>");


0 commentaires