Maison >interface Web >js tutoriel >Pourquoi mon expression régulière JavaScript renvoie-t-elle null lors de la correspondance des points ?

Pourquoi mon expression régulière JavaScript renvoie-t-elle null lors de la correspondance des points ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-09 14:55:12805parcourir

Why Is My JavaScript Regex Returning Null When Matching Points?

Pourquoi l'expression régulière JavaScript ne fonctionne pas

Problème :

Vous rencontrez un résultat nul lorsque vous tentez de faire correspondre une liste de points en JavaScript avec un résultat régulier expression.

Expression Regex :

var reg = new RegExp("/\(\s*([0-9.-]+)\s*,\s([0-9.-]+)\s*\)/g");

Solution :

  • Utiliser une expression régulière littéral :
var reg = /\(\s*([0-9.-]+)\s*,\s([0-9.-]+)\s*\)/g;
  • Erreurs lors de l'utilisation de RegExp :

    • Les délimiteurs (/) ne doivent pas faire partie de l'expression.
    • Les barres obliques inverses doivent être échappées si l'expression est définie comme un string.
    • Les modificateurs doivent être transmis comme deuxième argument à la fonction.

Remarque :

While utiliser RegExp est une option, il est souvent plus pratique d'utiliser regex littéraux.

Extraction de valeurs :

  • .match() renvoie un tableau de chaînes, ce qui peut ne pas être utile.
  • .exec () peut être utilisé pour extraire des nombres en continu jusqu'à ce que la chaîne entière soit traitée :
var result, points = [];
while((result = reg.exec(polygons)) !== null) {
    points.push([+result[1], +result[2]]);
}

Cela crée un tableau de tableaux contenant les nombres extraits. Le plus unaire ( ) convertit les chaînes en nombres.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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