扫码关注官方订阅号
比如下面的正则语句
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的。
/^(\s+)xxx\1$/.test(" xxx ")
new RegExp("^(\s+)xxx\1$").test(" xxx ")
但是你要用new RegExp("^(\\s+)xxx\\1$").test(" xxx ") 却是正常的。 这是因为字符串里面的“\”是需要转义的,所以需要加二个 "\"。
new RegExp("^(\\s+)xxx\\1$").test(" xxx ")
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
第一种写法如果你用
/^(\s+)xxx\1$/.test(" xxx ")
是返回true的;第二三两种写法如果使用
new RegExp("^(\s+)xxx\1$").test(" xxx ")
是返回false的。但是你要用
new RegExp("^(\\s+)xxx\\1$").test(" xxx ")
却是正常的。这是因为字符串里面的“\”是需要转义的,所以需要加二个 "\"。