我已经学会了一些基本的正则表达式来弄湿我的脚,但这对我来说仍然有点太复杂了。我需要采用一组用户输入的十进制度坐标(示例):
$纬度 = -42.323432 $经度 = 176.232123
preg_match()
并使用PHP中的函数检查它们是否有效。看起来很简单,但我无法为我的一生编写正则表达式来确保没有坏数据通过。我将检查彼此分开的北向和东向,因此这preg_match()
将使用foreach
循环迭代两次。
我想我已经弄清楚了所有必要的条件:
- 第一个字符可以是减号、加号或数字。缺点和优点是可选的。
- 小数点前数字的总数可以是 1 到 3,但不能是 0 或大于 3。
- 因此,第二位或第四位必须有小数点。(2.2332, -123.422)
- 整个字符串中必须有一个小数点,整个字符串中可以有 0 或 1 个减号或加号。
- 我希望小数点后至少有 3 个小数位的精度。没有最大限制(我自己简单地将其四舍五入到 6 dp)
- 如果除了数字、小数点和可选的加减号之外还有其他字符,则拒绝它。
不过,在这之后,我被困住了!在编写正则表达式时,我们将不胜感激。谢谢...