先来看一个简单的例子吧。

var str = "123X321".replace("X", "$'");

替换后的 str 是什么呢?
是 "123$'321" 。。。吗??
如果你的浏览器是 IE6-8 的话,确实是这个结果,可是那只是变态IE的结果。
标准浏览器下会是什么呢?

var str = "123X321".replace("X", "$'");
console.log(str);

点击右上角 运行 看看结果吧。
竟然是 "123321321" 为什么会是这个结果呢?
还是看权威的文档吧,《Specifying a string as a parameter》。
在这里,我们可以看到 $$, $&, $`, $' 和 $n/$nn 的格式。
相信很多学过 js 正则的应该都用印象。
其实我一直以为只有在正则里才能用这些替换参数,直到前些天被坑才真正掌握这个知识点。

其实 $$, $&, $`, $' 在普通字符串替换时也可以使用
$$ 表示 $ 字符
$& 表示匹配到的字符
$` 表示匹配到的字符之前的那部分
$' 表示匹配到的字符之后的那部分
但是 $n 或 $nn 只有在正则模式捕获组才能使用。

例如

var str = "123X321";
console.log( "$$", str.replace("X", "$$") ); // X 换成了 $
console.log( "$&", str.replace("X", "$&") ); // X 换成了 X
console.log( "$`", str.replace("X", "$`") ); // X 换成了 123
console.log( "$'", str.replace("X", "$'") ); // X 换成了 321
console.log( "$'", str.replace(/X/, "$'") ); // X 换成了 321// $n 这种格式只有正则能用
console.log( "$1", str.replace(/(X)(\d)/, "$1") ); // X3 换成了 X
console.log( "$2$1", str.replace(/(X)(\d)/, "$2$1") ); // X3 换成了 3X

这样应该很清楚这些替换参数的作用了吧,,千万别再次被坑到了。

js拾遗: replace 替换参数相关推荐

  1. Js中replace替换全部

    Js中replace替换所有* var t = '***感**谢**有**你***'; var r = t.replace(/\*/g,''); //\为转义字符 g表示全局 console.log( ...

  2. js正则表达式/replace替换变量方法

    转自:http://www.blogjava.net/pingpang/archive/2012/08/12/385342.html 1. javascript 正则对象替换创建和用法:/patter ...

  3. js字符串replace替换多个_汇总几大python常见字符串处理函数与用法(建议收藏)...

    前言: 这篇文章主要介绍了python常见字符串处理函数与用法,结合实例形式详细分析了Python字符串操作函数find.join.replace及split功能.使用技巧与操作注意事项,需要的朋友可 ...

  4. js 使用replace替换、全部替换、替换动态数据方法

    1.替换: let s = 'a,b,c,d'; s = s.replace(',','-');//输出: 'a-b,c,d' replace默认替换的是第一个. 2.全部替换 let s = 'a, ...

  5. 【javascript】js中replace替换失败的问题

    错误例子 var a="123"; a.replace("12","2"); console.log(a); bb并没有替换成功 正确例子: ...

  6. js 用replace替换空格 替换空格包含换行符 替换空格不包含换行符

    第一种:替换所有的空格(包含换行符) let str = '123AD asadf asadfasf\n adf\n' let a = str.replace(/\s+/g," " ...

  7. JS中用replace替换特殊字符

    1.替换一个字符 taskName=taskName.replace(/<p>/,"");或者 taskName=taskName.replace("< ...

  8. 关于js中replace()只能替换字符串中第一个对象的问题

    工作中用到js的replace比较多,将一个字符串中某个内容替换成另一个内容,但是往往只找到第一个符合条件的内容后就不往后替换了,可以用正则来解决此问题. var a="aaa,bbb,cc ...

  9. js 正则表达式奇偶字符串替换_js正则表达式replace替换变量方法

    JavaScript正则实战(会根据最近写的不断更新) 1.javascript 正则对象替换创建 和用法: /pattern/flags 先简单案例学习认识下replace能干什么 正则表达式构造函 ...

最新文章

  1. vfp中,函数subs(计算机管理信息系统,7)返回的结果是,VFP选择题库(可发学生).xls...
  2. 【PAT (Advanced Level) Practice】1001 A+B Format (20 分)
  3. pip安装库包以及.whl库包、.tar.gz库包具体方式
  4. 登录和oauth机制
  5. Job for network.service failed because the control process exited with error code问题
  6. wordcount代码_通过腾讯云 Serverless Regsitry 快速开发与部署一个 WordCount 实例
  7. java例程练习(一维数组)
  8. 纪事本 乱码_纪事日记–可自定义的数据存储
  9. OJ1055: 兔子繁殖问题(C语言计算斐波那契数列/“兔子数列”)
  10. C++ 为什么要用覆盖(学习笔记)
  11. 小米集团本周再回购1920万港元股票
  12. pod trunk push --verbose 失败的原因总结
  13. 美团外卖回应佣金争议;苹果回应戴口罩解锁 iPhone;新 Edge 浏览器明年将不再支持 Win7 | 极客头条...
  14. Linux 7配置named,centos7dns服务器配置文件name.conf权限问题
  15. python列表方法图解_python中list(列表)的使用方法总结(图文)
  16. Omnet 4.2.2 errorList
  17. android6.0 Activity(四) Surface创建
  18. 安卓ps模拟器_电脑安装模拟器配置要求
  19. ybt1109 开关灯
  20. 几行代码解决百度云视频变成 8秒净网公告问题(滑稽)

热门文章

  1. Fms3和Flex打造在线多人视频会议和视频聊天(附原代码)
  2. smartphone 创建快捷方式 shorcut(1)
  3. AndroidStudio安卓原生开发_Activity_生命周期_单activity的生命周期_多activity启动关闭的时候生命周期关系---Android原生开发工作笔记85
  4. MyCat分布式数据库集群架构工作笔记0005---Mycat的安装
  5. 持续集成部署Jenkins工作笔记0003---Web工程部署方式说明
  6. 杭电2529Shot
  7. swift函数的用法,及其嵌套实例
  8. java基础案例教程试题,Java基础案例教程-中国大学mooc-试题题目及答案
  9. 无人驾驶(ncnn学习)
  10. 随想录(keras入门)