2012-01-16 29 views
1

我想验证输入,可以由用户以一种形状或另一种形式更改输入。这是特定于经度和纬度。所以我试图想出一个将验证条目的正则表达式。所以,我可以抛出一个异常,如果它不匹配正则表达式匹配经度和纬度

正则表达式我玩通过PHP的preg_match是:

preg_match('/^(\-?\d+(\.\d+)?),\s*(\-?\d+(\.\d+)?)$/') 

这似乎并没有为我工作。我试图赶上GPS经度/纬度的格式一样 -101.3335和71.5555(当然我不知道这些具体的数字如何有效的是但那一般格式)

+2

你怎么说“似乎不工作”?该正则表达式看起来应该适用于像“-123.456,123.456”这样的字符串。你发现什么输入字符串不匹配? – CanSpice

+0

你知道吗,我想我刚刚意识到我的问题。它是我单独传递它们而不是结合在一起的事实,我甚至都没有想过。 – chris

回答

3
preg_match('/^(\-?\d+(\.\d+)?),\s*(\-?\d+(\.\d+)?)$/') 

实际上是一个工作概念。当我发布并且遇到问题时,我始终未能意识到我无法将其中一个或另一个放到其他位置。我必须将它们放在一个由a分隔的位置,以便将它们分隔开验证。哪位有人在我的评论中向首席执行官指出,我很欣赏帮助。

1

试试这个:

preg_match('/^(\\-?\\d+[.\\d]+),?\\s*(\\-?\\d+[.\\d]+)?$/') 
+1

这不起作用 - '[。\ d +]'匹配'.'或数字或'+'的一个实例。 –