Maison  >  Questions et réponses  >  le corps du texte

javascript - Demander de l'aide concernant les problèmes réguliers de JS

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

某草草某草草2688 Il y a quelques jours439

répondre à tous(4)je répondrai

  • 世界只因有你

    世界只因有你2017-05-16 13:41:37

    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.

    répondre
    0
  • 習慣沉默

    習慣沉默2017-05-16 13:41:37

    Vous utilisez le groupe de capture pour l'obtenir

    répondre
    0
  • 为情所困

    为情所困2017-05-16 13:41:37

    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);
    }

    répondre
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 13:41:37

    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

    répondre
    0
  • Annulerrépondre