Regex在JavaScript中检查lat/lon

Regex checking lat/lon in JavaScript

本文关键字:lat lon 检查 JavaScript Regex      更新时间:2023-09-26

我是regex的新手,但仍然
我的测试是基于这篇文章。

我有一个简单的正则表达式:

^-?([1]?[1-7][1-9]|[1]?[1-8][0]|[1-9]?[0-9])'.{1}'d{1,6}

例如,在Debugex中,如果我用88.5测试它,它就会匹配。

在我的JS文件中,我有:

var lonRegex = new RegExp("^-?([1-8]?[1-9]|[1-9]0)'.{1}'d{1,6}");
var check = lonRegex.test(88.5); // hardcoded for demo
console.log(check) // output false

我猜不出为什么它总是返回false,不管值是数字还是像"88.5"这样的字符串。

从字符串创建RegExp对象时,需要转义一些字符。来自MDN:

使用构造函数时,需要使用普通的字符串转义规则(当包含在字符串中时,在特殊字符前面加'')。

在您的情况下,这将起作用(注意''d和.的双引号):

var lonRegex = new RegExp("^-?([1-8]?[1-9]|[1-9]0)''.{1}''d{1,6}");
var check = lonRegex.test(88.5); // hardcoded for demo
console.log(check) // output true