我是正则表达式中的新手,但仍然...... 我的考试基于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”这样的字符串。
答案 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