读书人

JAVASCRIPT正则表达式太奇怪了解决方法

发布时间: 2012-03-09 16:54:58 作者: rapoo

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,因此用它来创建的正则与原有方式不一致。

读书人网 >JavaScript

热点推荐