我正在尝试获取HTML5输入模式属性来验证经纬度字符串,如下所示:[29.771620257395901,-95.4293158327673]
似乎无法正确表达安静。。。
<input type="text" name="latlon" pattern="/[[+-]?([0-9]*[.])?[0-9]+,[+-]?([0-9]*[.])?[0-9]+$/" />
纬度应介于-90到90之间经度应介于-180到180之间
因此,下面的正则表达式将有助于验证纬度和经度的有效范围
[(+|-|)(([0-8]d?)(.d+)?|90(.0+)?),(+|-|)((d?d|1[0-7]d)(.d+)?|180(.0+)?)]
测试用例
[89.438483,67.348389] - Valid
[90.39393,178.000] - Invalid
[0.347347,78.49494] - Valid
[-20.5858,90.889] - Valid
[-78,-179] - Valid
[-78.48348,180.00] - Valid
[-78.384844,180.44] - Invalid
Regex演示-https://regexr.com/61rnl
您可以使用
[[+-]?[0-9]*.?[0-9]+,[+-]?[0-9]*.?[0-9]+]
注意,对于所有可选部件,它也可以匹配.42931508327673
Regex演示