我需要验证输入的字符串的经度和纬度的格式,而不是它的经度和纬度的值是否正确。
纬度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(不区分大小写)。
您已将N
和S
设置为必填项。
"^(?: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:75E
或99: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;