Maison > interface Web > js tutoriel > Pourquoi mon expression régulière JavaScript ne parvient-elle pas à extraire les coordonnées d'une chaîne ?

Pourquoi mon expression régulière JavaScript ne parvient-elle pas à extraire les coordonnées d'une chaîne ?

Linda Hamilton
Libérer: 2024-12-21 17:46:16
original
250 Les gens l'ont consulté

Why Is My JavaScript Regex Failing to Extract Coordinates from a String?

Pourquoi cette expression régulière JavaScript ne fonctionne-t-elle pas ?

En essayant d'extraire des points d'une chaîne avec une expression régulière, un utilisateur a rencontré une valeur nulle résultat. L'expression régulière fournie, "(s([0-9.-] )s,s([0-9.-] )s*)", correspond aux points entre parenthèses et séparés par des virgules. Cependant, lorsqu'il est appliqué à une chaîne telle que "(25.774252, -80.190262), (18.466465, -66.118292), (32.321384, -64.75737), (25.774252, -80.190262)", il échoue.

Résolution

La cause première est l'utilisation incorrecte du constructeur RegExp. Pour utiliser un littéral regex, plus pratique et moins sujet aux erreurs, remplacez « new RegExp » par « / ». De plus, les modificateurs sont passés comme deuxième argument :

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

Note sur la sortie

match() renvoie un tableau de chaînes correspondantes, ce qui peut ne pas être utile pour extraire des valeurs numériques. Au lieu de cela, exec() doit être utilisé pour extraire des correspondances individuelles :

var result, points = [];

while ((result = reg.exec(polygons)) !== null) {
    points.push([+result[1], +result[2]]);
}
Copier après la connexion

Cela créera un tableau contenant des coordonnées sous forme de nombres. Alternativement, si les chaînes sont préférées, omettez le plus unaire ( ).

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