js里面正则对象与正则字符串中的反斜杠有什么区别

比如下面的正则语句

re = /^(\s+)xxx\1$/;
re = new RegExp("^(\s+)xxx\1$");
re = new RegExp('^(\s+)xxx\1$');

我这三种写法对吗?好像应该对凡斜杠有所处理,有的应该是两个,但是我有点分不清楚了。

阅读 6.1k
1 个回答

第一种写法如果你用 /^(\s+)xxx\1$/.test(" xxx ") 是返回true的;
第二三两种写法如果使用 new RegExp("^(\s+)xxx\1$").test(" xxx ") 是返回false的。QQ20140918-1.png

但是你要用new RegExp("^(\\s+)xxx\\1$").test(" xxx ") 却是正常的。
这是因为字符串里面的“\”是需要转义的,所以需要加二个 "\"。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题