首页 >web前端 >js教程 >为什么我的 JavaScript 正则表达式无法从字符串中提取坐标?

为什么我的 JavaScript 正则表达式无法从字符串中提取坐标?

Linda Hamilton
Linda Hamilton原创
2024-12-21 17:46:16247浏览

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

为什么这个 JavaScript 正则表达式不起作用?

尝试使用正则表达式从字符串中提取点,用户遇到了 null结果。提供的正则表达式“(s([0-9.-] )s,s([0-9.-] )s*)”匹配括号内并用逗号分隔的点。但是,当应用于“(25.774252, -80.190262),(18.466465, -66.118292),(32.321384, -64.75737),(25.774252, -80.190262)”这样的字符串时,它失败。

解决方法

根本原因是 RegExp 构造函数的错误使用。要使用更方便且不易出错的正则表达式文字,请将“new RegExp”替换为“/”。此外,修饰符作为第二个参数传递:

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

输出注意事项

match() 返回一个匹配字符串数组,这对于提取数值。相反,应该使用 exec() 来提取单个匹配项:

var result, points = [];

while ((result = reg.exec(polygons)) !== null) {
    points.push([+result[1], +result[2]]);
}

这将创建一个包含数字坐标的数组。或者,如果首选字符串,请省略一元加号 ( )。

以上是为什么我的 JavaScript 正则表达式无法从字符串中提取坐标?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn