正则表达上如上,一个得出的结果为true,一个为false。为什么呢?
<script type="text/javascript">
var re = new RegExp("(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)","g");
var reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/g;
var c = "012";
document.write(re.test(c));
document.write("<br/>");
document.write(reg.test(c));
</script>
上边的格式有点乱。整理一下
var reg = /(^1-9?(.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9].0-9?$)/g;
这句话中把 点 . 前面的\ 去掉,这不是在字符串中不需要转意
补充:你的原码中 re 与reg的正则表达式的值实际上是不一样的
reg :每个点 . 前面都比 re 多了个\