正则表达式如何匹配到-180~180范围的经纬度?

匹配到经纬度的范围是-180 到 180 小数后0到6位。虽然以前学过正则但是这个略复杂实在想不出,网上的答案也都不可以用,求助一下万能的segmentfault,有什么好的方法。

阅读 5.8k
2 个回答

啊,我理解错你的意思了,不好意思,我这只是格式匹配,你是要匹配小数点后6位?我再想想


var reg = /^-?1?[0-8]?[0-9](\.[0-9]{1,6})?$/;

// true
console.log(reg.test('180'));
console.log(reg.test('-180'));
console.log(reg.test('0.23132'));
console.log(reg.test('10.323213'));
console.log(reg.test('56.876'));
console.log(reg.test('-76.3232'));

// false
console.log(reg.test('-196.3232'));
console.log(reg.test('-206.3232'));

经度,例如:-180.000~180.000(最多保留三位小数):
reg = /^(-|+)?(((d|[1-9]d|1[0-7]d|0{1,3}).d{0,3})|(d|[1-9]d|1[0-7]d|0{1,3})|180.0{0,3}|180)$/

纬度,例如:-90.000~90.000(最多保留三位小数):
reg = /^(-|+)?([0-8]?d{1}.d{0,3}|90.0{0,3}|[0-8]?d{1}|90)$/

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题