javascript - Demander de l'aide concernant les problèmes réguliers de JS
某草草
某草草 2017-05-16 13:39:37
0
4
492

Dans de nombreux cas, il suffit de faire correspondre le contenu au milieu de l'expression, et il n'est pas nécessaire que le contenu se trouve à la position correspondante, comme les crochets gauche et droit dans l'image ci-dessous, je connais cette largeur nulle. des assertions peuvent être effectuées, mais js ne prend pas en charge les assertions inversées. Veuillez me le dire. Existe-t-il un autre moyen régulier de les gérer en une seule étape ? Il est préférable de ne pas publier le plan ultérieur d'interception et de traitement des chaînes

某草草
某草草

répondre à tous(4)
世界只因有你

C'est bien d'utiliser le groupe de capture dans l'expression régulière. De plus, développez vos idées :
replaceLa méthode peut être utilisée en combinaison avec le groupe de capture, qui est très puissant.

"transform: scale(-12312.212) rotate(-0.23deg) translateX(0.31px);"
.replace(/[^(]*\((-?\d+\.?\d+\w+?)\)[^(]*/g, function(m, p) {
    return p+' ';
});
// "-12312.212 -0.23deg 0.31px "

Pour plus de connaissances sur le système régulier js, il est recommandé de lire en profondeur le manuel du front-end des expressions régulières. J'écris cet article par intermittence depuis deux mois. Si vous me frappez si ce n'est pas utile, je promets de ne pas me battre. dos.

習慣沉默

Vous utilisez le groupe de capture pour l'obtenir

为情所困

Le groupe dans les expressions régulières peut répondre à vos besoins.
Sur la base de l'expression régulière que vous avez écrite, ajoutez une paire de parenthèses (indiquant un groupe et développant la partie que vous souhaitez vraiment ((-?d+.?d+([a-z]+)?))

).

Code de test, dans lequel la méthode myRegexp.exec renvoie un tableau et le premier élément est la chaîne correspondant à l'expression régulière, y compris les crochets que vous "ne voulez pas voir". Le deuxième élément (c'est-à-dire que l'indice est 1) correspond au contenu capturé par la première parenthèse de votre expression régulière, qui correspond au nombre et à l'unité souhaités.

var myString = 'scale(-12312.212)skdk, rotate(-0.23deg)..+-(800)-555-2468';
var myRegexp = /\((-?\d+\.?\d+([a-z]+)?)\)/g;
match = myRegexp.exec(myString);
while (match != null) {
  console.log(match[1])
  match = myRegexp.exec(myString);
}
给我你的怀抱

Utilisez un regroupement régulier pour y parvenir
Utilisez d'abord /g pour faire correspondre toutes les chaînes cibles
Ensuite, utilisez une expression régulière sans /g pour chacune d'elles pour obtenir un groupe de résultats, qui est la valeur dont vous avez besoin, allez directement Code
Entouré entre parenthèses, il s'agit d'un groupe de capture, veuillez rechercher sur Google une utilisation détaillée

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal