正则表达式检查JavaScript中的lat / lon

时间:2014-11-06 23:29:19

标签: javascript regex

我是正则表达式中的新手,但仍然...... 我的考试基于this帖子。

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

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

Debuggex中,如果我使用 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

我无法猜测为什么它总是让我虚假,无论数值是什么,还是像“88.5”这样的字符串。

1 个答案:

答案 0 :(得分:1)

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

  

使用构造函数时,正常的字符串转义规则(在字符串中包含\的特殊字符前面)是必要的。

在你的情况下,这将起作用(注意\ \和\的双\ \。):

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