2012-01-16 66 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 +]'匹配'.'或數字或'+'的一個實例。 –