问题一:
<script language="javascript">
var re = new RegExp("^\d+$");
if(!re.test("d")){
alert("非数字!");
}
</script>
没有提示,也就是把d当成数字了。
<script language="javascript">
var re = new RegExp("^\d+$");
if(!re.test("a")){
alert("非数字!");
}
</script>
a正常。<script language="javascript">
var re = new RegExp("^[0-9]+$");
if(!re.test("a")){
alert("非数字!");
}
</script>
正常了,也就是[0-9]不等价于\d,怎么回事?问题二:
<script language="javascript">
re = new RegExp("^[1-3]?[0-9]?[0-9](\.[0-9]+)?$");
str = "2g2";
if(re.test(str.toString())) alert("ok");
else alert("not ok");
</script>2g2 怎么会ok呢?
<script language="javascript">
var re = new RegExp("^\d+$");
if(!re.test("d")){
alert("非数字!");
}
</script>
没有提示,也就是把d当成数字了。
<script language="javascript">
var re = new RegExp("^\d+$");
if(!re.test("a")){
alert("非数字!");
}
</script>
a正常。<script language="javascript">
var re = new RegExp("^[0-9]+$");
if(!re.test("a")){
alert("非数字!");
}
</script>
正常了,也就是[0-9]不等价于\d,怎么回事?问题二:
<script language="javascript">
re = new RegExp("^[1-3]?[0-9]?[0-9](\.[0-9]+)?$");
str = "2g2";
if(re.test(str.toString())) alert("ok");
else alert("not ok");
</script>2g2 怎么会ok呢?
var re = new RegExp("^\\d+$");
if(!re.test("d")){
alert("非数字!");
}
</script>参考
正则基础之——神奇的转义
<script language="javascript">
var re = /^\d+$/;
if(!re.test("d")){
alert("非数字!");
}
</script>第二个也是同样的问题,小数点没有转义,所以第二个正则相当于
re = /^[1-3]?[0-9]?[0-9](.[0-9]+)?$/;
这样为什么ok,我想楼主就能分析出来了吧<script type="text/javascript">
re = new RegExp("^[1-3]?[0-9]?[0-9](\\.[0-9]+)?$");
str = "2g2";
if(re.test(str.toString())) alert("ok");
else alert("not ok");
</script>