比如下面的正则语句
re = /^(\s+)xxx\1$/;
re = new RegExp("^(\s+)xxx\1$");
re = new RegExp('^(\s+)xxx\1$');
我这三种写法对吗?好像应该对凡斜杠有所处理,有的应该是两个,但是我有点分不清楚了。
第一种写法如果你用 /^(\s+)xxx\1$/.test(" xxx ")
是返回true的;
第二三两种写法如果使用 new RegExp("^(\s+)xxx\1$").test(" xxx ")
是返回false的。
但是你要用new RegExp("^(\\s+)xxx\\1$").test(" xxx ")
却是正常的。
这是因为字符串里面的“\”是需要转义的,所以需要加二个 "\"。