JAVASCRIPT正则表达式太奇怪了
- JScript code
var a = /^[a-zA-Z]\w{5,17}$/i;alert(a.test("abncdfe"));//结果是 truevar b = "^[a-zA-Z]\w{5,17}$";alert(new RegExp(b,"i").test("abncdfe"));//这个结果却是 false
看代码。有人遇到过吗?
[解决办法]
转义字符的问题
- HTML code
<script>var a = /^[a-zA-Z]\w{5,17}$/i;alert(a.test("abncdfe"));//结果是 truevar b = "^[a-zA-Z]\\w{5,17}$";alert(new RegExp(b,"i").test("abncdfe"));</script>
[解决办法]
楼上正解
第二种方式里,\w 在转义字符里没有意义,最终系统中存储的时候会把 \w 重新置为 w,因此用它来创建的正则与原有方式不一致。