Maison > interface Web > js tutoriel > le corps du texte

Une brève discussion sur la méthode replace() dans jQuery_jquery

WBOY
Libérer: 2016-05-16 15:59:19
original
2068 Les gens l'ont consulté

Quand je lisais le code source de jquery aujourd'hui, j'ai trouvé un problème que je n'avais jamais remarqué auparavant, qui est le problème lorsque le deuxième paramètre de replace() est une fonction. Je savais que le deuxième paramètre de replace. () peut être une fonction, mais je ne sais pas comment la faire fonctionner. Quand j'ai vu une fonction utilisée comme deuxième paramètre de replace() dans le code source aujourd'hui, j'ai senti qu'elle était difficile à lire, alors j'ai planifié. pour régler cette fonction...

Grammaire

stringObject.replace(regexp/substr, remplacement)

Valeur de retour

Renvoie une nouvelle chaîne obtenue en remplaçant la première correspondance ou toute correspondance souhaitée d'expression rationnelle par un remplacement

Lorsque le remplacement du paramètre de la méthode replace() est une fonction, dans ce cas, la fonction est appelée pour chaque correspondance et la chaîne renvoyée par la fonction est utilisée comme texte de remplacement. Le premier paramètre de cette fonction est une chaîne correspondant au modèle. Le paramètre suivant est une chaîne qui correspond à la sous-expression dans le modèle. Il peut y avoir 0 ou plusieurs paramètres de ce type. Le paramètre suivant est un entier qui déclare la position dans stringObject où la correspondance se produit. Le dernier paramètre est le stringObject lui-même. Cette phrase a été copiée de w3cschool. Pour moi maintenant, je ne comprends pas très bien le paragraphe ci-dessus, et je ne peux pas simplement le décrire avec mes propres mots, je ne peux donc utiliser que des exemples pour tout illustrer

Copier le code Le code est le suivant :

var chaîne = "abc123-ii";
string.replace(/(d)-([da-z])/g,function( str1, str2, str3, str4, str5){
           console.log( str1 ); // 3-i
            console.log( str2 ); // 3 (première capture)
            console.log(str3);//i (le deuxième groupe non capturant)
console.log(str4);//5 (correspond à la position qui apparaît dans la chaîne)
            console.log(str5);// abc123-ii (chaîne elle-même)
          renvoyer "Je" ;
})

Ce qui précède est le code source jquery que je regardais aujourd'hui

Copier le code Le code est le suivant :

camelCase : fonction (chaîne) {
           return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
},
fcamelCase = fonction (tout, lettre) {
         return letter.toUpperCase();
};

J'ai l'impression de comprendre cette fonction maintenant que je ne la comprenais pas à l'époque

Ensuite, je me souviens que je ne sais pas quand dans le passé, j'ai rencontré des symboles étranges lors de l'utilisation de replace(), qui étaient des symboles étranges pour moi à cette époque, comme "$1, $2" et ainsi de suite. Maintenant, Ye Lai a une réponse à cette question

$1, $2, $3.... signifie capturer 1, 2, 3....

Copier le code Le code est le suivant :

var chaîne = "abc123-ii";
console.log(string.replace(/(d)-([da-z])/g, "$1")); // Utiliser le groupe de capture 1(3) pour remplacer /(d)-([da-z ])/g

$& représente une expression rationnelle correspondant à une sous-chaîne

Copier le code Le code est le suivant :

var chaîne = "abc123-ii";
console.log(string.replace(/(d)-([da-z])/g, "$&")); // Remplacez /(d par la chaîne (3-i) qui correspond à l'expression rationnelle )-( [da-z])/g

$` représente le texte situé à gauche de la sous-chaîne correspondante

Copier le code Le code est le suivant :

var chaîne = "abc123-ii";
console.log(string.replace(/(d)-([da-z])/g, "$`")); // Remplacez /(d)- par le texte à gauche de la chaîne correspondante ( abc12) ([da-z])/g

$' représente le texte situé à droite de la sous-chaîne correspondante

Copier le code Le code est le suivant :

var chaîne = "abc123-ii";
console.log(string.replace(/(d)-([da-z])/g, "$'")); // Remplacez /(d)-([ par le texte à droite du correspondant chaîne da-z])/g

$$ est directement le symbole $

Copier le code Le code est le suivant :

var chaîne = "abc123-ii";
console.log(string.replace(/(d)-([da-z])/g, "$$")); // Utilisez le symbole $ pour remplacer /(d)-([da-z])/ g

C'est là que je ne suis pas clair sur l'utilisation de la méthode replace(). Je suis un novice du front-end. S'il y a quelque chose qui ne va pas dans ce que j'ai écrit, ou s'il existe des exemples d'une meilleure utilisation de cette méthode. , j'espère que vous pourrez le partager...

Ce qui précède représente l’intégralité du contenu de cet article, j’espère que vous l’aimerez tous.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal