Maison > interface Web > js tutoriel > Pourquoi mon expression régulière JavaScript ne correspond-elle pas correctement aux coordonnées ?

Pourquoi mon expression régulière JavaScript ne correspond-elle pas correctement aux coordonnées ?

Susan Sarandon
Libérer: 2024-12-13 02:14:12
original
523 Les gens l'ont consulté

Why Isn't My JavaScript Regex Matching Coordinates Correctly?

Pourquoi cette expression régulière JavaScript ne fonctionne pas

Dans le code JavaScript fourni, l'expression régulière var reg = new RegExp("/(s *([0-9.-] )s*,s([0-9.-] )s*)/g"); ne parvient pas à correspondre à la chaîne d'entrée var polygons="(25.774252, -80.190262),(18.466465, -66.118292),(32.321384, -64.75737),(25.774252, -80.190262)";, ce qui entraîne une valeur nulle résultat.

Utilisation incorrecte de Regex

L'erreur provient de deux utilisations incorrectes du constructeur RegExp :

  1. Délimiteurs : Les barres obliques (/) ne doivent pas être incluses dans la chaîne d'expression régulière. Utilisez plutôt la syntaxe /(s*([0-9.-] )s*,s([0-9.-] )s*)/g pour définir l'expression avec '/' comme délimiteurs.
  2. Échappement des barres obliques inverses : Si vous utilisez une chaîne d'expression régulière, le caractère barre oblique inverse doit être échappé avec un autre caractère pour garantir sa représentation littérale, car il est réservé à l'échappement. séquences dans des chaînes JavaScript.

Regex Literal

Pour éviter ces pièges, il est recommandé d'utiliser un littéral regex, qui est entouré de barres obliques et échappé selon la syntaxe de l'expression régulière :

var reg = /\(\s*([0-9.-]+)\s*,\s([0-9.-]+)\s*\)/g;
Copier après la connexion

Sortie Extraction

La syntaxe polygons.match(reg) utilisée dans le code renvoie un tableau de sous-chaînes correspondantes. Cependant, comme la chaîne d'entrée ne contient qu'une seule sous-chaîne qui correspond au modèle, le résultat est un tableau à un seul élément :

["(25.774252, -80.190262),(18.466465, -66.118292),(32.321384, -64.75737),(25.774252, -80.190262)"]
Copier après la connexion

Pour extraire les paires lat/lon individuelles sous forme de tableaux, la méthode match() doit être remplacé par exec() :

[total match result, lat1, lon1, lat2, lon2, ..., latn, lonn] = reg.exec(polygons);
Copier après la connexion

Cela donnera lieu à un tableau contenant la correspondance globale et tous les groupes capturés, permettant un accès facile aux paires latitude/longitude.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal