js正则表达式问题,加了引号与不加引号的区别
发布网友
发布时间:2022-04-22 21:49
我来回答
共1个回答
热心网友
时间:2022-04-22 23:18
这是你测的值的问题和引号无关,下面详解
把你的式子分解一下
var myTest=/^-?(?:0|(?:[1-9]\d{0,3}))(?:\.\d+)?$/;
var str=2223.;
alert(myTest.test(str));
情况一 var str=2223.;
这时 str是个整数值,相当于 str=2223.0 ,就是 str=2223
情况二 var str="2223."; str是包含点的字符串
再来分析你的正则表达式,主要是后面的(?:\.\d+)?,它的含义是如果有点的话点后要跟至少一个数字。
现在*大白了吧,当你测试情况一时(不加引号)实际测的是2333,因为没有点所有返回真,测情况二时后面有点,那就要跟至少跟一个数字才为真。