javascript - 怎样解读这个正则表达式
伊谢尔伦
伊谢尔伦 2017-04-11 12:32:26
[JavaScript讨论组]

我在学习es6的时候遇到了一个正则表达式,是如下:

function escapeRegExp(str) {
  return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
}
let str = '/path/to/resource.html?search=query';
escapeRegExp(str)

//结果

"\/path\/to\/resource\.html\?search=query"

"\\$&"这个是什么意思
为什么结果是这样的

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(3)
伊谢尔伦

这是把需要转义的前面加一个 ''

$&就是上次匹配的,省去分组了,前面\ 就是替换成转义的''

我看标准里说这个lastMatch非标准,所以我觉得这么写能易懂一些

str.replace(/([\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|])/g, '\\$1');

阿神

$&表示 与regexp相匹配的子串。而\表示转义。 所以替换的参数是 \匹配到的字符串
所以上面的表达式的意思就是把 匹配到的 a 变为 \a
而前面那个正则表达式则是去匹配字符串中所有正则相关的关键字符。

PHP中文网

https://developer.mozilla.org...

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号