【发布时间】:2023-03-21 11:07:01
【问题描述】:
我一直在寻找一种方法来验证纬度/经度对列表。虽然我找到了一些关于如何validate pairs 和如何validate a list of pairs 的好例子,但我一直无法编写一个正则表达式来满足我的具体要求。要求如下:
- 每个纬度/经度对都必须包含有效值(由first link 解决)
- 每对必须用逗号与其他对隔开。 The second link 使用分号,但是用逗号替换它会导致正则表达式出现一些问题
- 必须有偶数个坐标,以便每个坐标都配对
- 逗号后面的空格是可以的
- 至少需要3个坐标对,这样坐标才能形成一个多边形(但我们不必担心重复的坐标),最后的坐标对后面不能跟逗号
以下条目应该是有效的:
32.3078, 64.7505,
27.6648, 81.5158,
18.2208, 66.5901
32.3078, 64.7505,
27.6648, 81.5158,
18.2208, 66.5901,
32.3078, 64.7505,
27.6648, 81.5158,
18.2208, 66.5901
32.3078,64.7505,27.6648,81.5158,18.2208,66.5901
虽然这些应该是无效的:
//only 1 pair
32.3078, 64.7505
//no commas separating each pair
32.3078, 64.7505
27.6648, 81.5158
18.2208, 66.5901
//odd number of pairs
32.3078, 64.7505,
27.6648, 81.5158,
18.2208, 66.5901,
32.3078, 64.7505,
27.6648, 81.5158,
18.2208
//comma after the final pair
32.3078, 64.7505,
27.6648, 81.5158,
18.2208, 66.5901,
【问题讨论】:
-
首先用逗号或空格分割,然后对照边界测试每个数字。
标签: javascript regex