用于验证经度和纬度输入格式的正则表达式



我需要验证输入的字符串的经度和纬度的格式,而不是它的经度和纬度的值是否正确。

纬度89:90:00N或67:90:76 S和经度67:23:00E或78:23:45W的格式

我正在使用下面的表达式,我得到一个假

 if (!Regex.IsMatch(currentValue, "^[0-9][0-9]:[0-9][0-9]:[0-9][0-9][N][S]$"))
                                Errors.Text = "Invalid format of Latitude;

请纠正我我错在哪里…我需要验证它是N还是S(不区分大小写)。

您已将NS设置为必填项。

"^(?:90|[0-8][0-9]):[0-5][0-9]:[0-5][0-9][NS]$"    // latitude
"^(?:180|1[0-7][0-9]|[0-9][0-9]):[0-5][0-9]:[0-5][0-9][EW]$"  // longitude

应该工作。这也将拒绝无效的条目,如190:67:75E99:99:99S

/^([0-9]{1,2}:[0-9]{2}:[0-9]{2}s?[NS]|[0-9]{1,3}:[0-9]{2}:[0-9]{2}s?[EW])$/i

应该工作

感谢Tim Pietzcker的^$。我忘了把它放在我的开头:P

N/S部分有错误。同样,你可以让它更容易读,像这样:

if (!Regex.IsMatch(currentValue, "^d{2}:d{2}:d{2}[SN]$"))
                            Errors.Text = "Invalid format of Latitude;

最新更新