一、replace() 是什么?

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串;
replace方法可以接受两个参数:第一个参数可以使RegExp对象或者一个字符串,第二个参数可以是一个字符串或者一个函数。如果第一个参数是字符串,那么只会替换第一个字符串。如果想替换所有的字符串,则必须使用正则表达式。

1.1.当第二个参数是字符串时,字符有特殊的含义:

$1,$2,...,$99 匹配第1~99个分组里捕获的文本
$& 匹配到的子串文本
$` 匹配到的子串的左边文本
$' 匹配到的子串的右边文本
$$ 美元符号

例如,把 “2,3,5”,变成 “5=2+3”:

var result = "2,3,5".replace(/(\d+),(\d+),(\d+)/,"$3=$1+$2");
console.log(result);
// 5=2+3

又例如,把 “2,3,5”,变成 “222,333,555”:

var result = "2,3,5".replace(/(\d+)/g,"$&$&$&");
console.log(result);
// 222,333,555

再例如,把 “2+3=5”,变成 “2+3=2+3=5=5”:

var result = "2+3=5".replace(/=/,"$&$`$&$'$&");
console.log(result);
// 2+3=2+3=5=5我们对最后这个进行一下说明。要把 "2+3=5",变成 "2+3=2+3=5=5",其实就是想办法把 = 替换成
=2+3=5=,其中,$& 匹配的是 =, $` 匹配的是 2+3,$' 匹配的是 5。因此使用 "$&$`$&$'$&" 便达成了目的。

1.2.当第二个参数是函数时

第二个参数是一个函数。函数拥的参数:第一个参数是匹配到的字符串,倒数第二个参数是匹配的位置,最后一个个参数是原字符串。在函数里面可以对字符串进行操作。使用函数作为第二个参数,可以做一些复杂的替换,比如当匹配多个字符时候,可以对不同的字符做不同的替换。

例如,把 “hello world”,变成 “hebba warbd”:

var str="hello world";
var str1=str.replace(/[ol]/g,function(match,index,input){console.log(index);if(match=="o"){return "a";}else {return "b";}
});
console.log(str1);//hebba warbd

在例如,引入特殊字符:

"1234 2345 3456".replace(/(\d)\d{2}(\d)/g,function(match,$1,$2,index,input){console.log([match,$1,$2,index,input]);
})
//   ['1234', '1', '4', 0, '1234 2345 3456']
//   ['2345', '2', '5', 5, '1234 2345 3456']
//   ['3456', '3', '6', 10, '1234 2345 3456']

js 正则中 replace() 使用相关推荐

  1. js 正则中冒号代表什么_JS正则表达式一条龙讲解(从原理和语法到JS正则)

    正则啊,就像一座灯塔,当你在字符串的海洋不知所措的时候,总能给你一点思路:正则啊,就像一台验钞机,在你不知道用户提交的钞票真假的时候,总能帮你一眼识别:正则啊,就像一个手电筒,在你需要找什么玩意的时候 ...

  2. js 正则中冒号代表什么_javascript中正则表达式语法详解

    好久都没有写博客了,主要是太懒了,尤其是在阳春三月,风和日丽的日子,太阳暖暖的照在身上,真想美美的睡上一觉.就导致了这篇博客拖到现在才开始动笔,javascript的正则这一块也不是什么新的东西,主要 ...

  3. js正则中的match()

    在前端开发中,正则表达式是一大利器.所以我们这次就来讨论下match()方法. match本身是JavaScript语言中字符串对象的一个方法,该方法的签名是 match([string] | [Re ...

  4. 小tips:JS之按位取反,语法标签label,正则表达式中replace的0,1是什么?

    JS按位取反 Javascript 按位取反运算符 (~) ,对一个表达式执行位非(求非)运算.如 ~1 = -2; ~2 = -3; 来看看~1的计算步骤: 将1(这里叫:原码)转二进制 = 000 ...

  5. 正则匹配不包含某字符串_如何替换JS字符串中匹配到多处中某一指定节点?

    来源 | https://www.cnblogs.com/class1/p/14273231.html 问题先行,要求搜索关键字,匹配到四处,那我鼠标放在第二处,我想把它变个颜色,该怎么实现呢?截图如 ...

  6. js 正则表达式奇偶字符串替换_JS利用正则配合replace替换指定字符

    替换指定字符的方法有很多,在本文为大家详细介绍下,JS利用正则配合replace是如何做到的,喜欢的朋友可以参考下 定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一 ...

  7. js mysql替换_JavaScript_js使用正则实现ReplaceAll全部替换的方法,JS 字符串有replace() 方法。但这 - phpStudy...

    js使用正则实现ReplaceAll全部替换的方法 JS 字符串有replace() 方法.但这个方法只会对匹配到的第一个字串替换. 如下例: New Document var str = " ...

  8. php 正则匹配中文标点,JavaScript_js实现正则匹配中文标点符号的方法,本文实例讲述了js正则匹配中 - phpStudy...

    js实现正则匹配中文标点符号的方法 本文实例讲述了js正则匹配中文标点符号的方法.分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: js正则匹配中文标点符号 function ch ...

  9. js正则替换字符串中所有的指定字符

    mysql 中用正则表达式如何取一个字符串中指定的字段, substring_index(input,split,index):input为要截取的字符,split为分隔符,Index为要截取第ind ...

最新文章

  1. JDBC连接数据库格式
  2. python 的按位与 或 异或 运算
  3. 【转】数据库软考笔记(一)第一章 计算机硬件基础知识笔记总结
  4. 计算机硬件工程师主要干什么,计算机硬件工程师主要学习什么内容
  5. linux下安装五笔输入法,Linux五笔输入法:小小输入法安装配置
  6. 什么是Apache APR
  7. Xiph.Org基金会 —— 多媒体开源的先锋
  8. 中国人民大学与加拿大女王大学金融硕士项目不仅实现自我升华还能拿到闪亮文凭
  9. 计算基因组外显子长度
  10. js递归处理删除某些节点
  11. MySQL从删库到跑路(0):序章
  12. android 使用Path实现涂鸦效果
  13. html监控页面大小,JQuery实时监控窗口大小(无需插件)
  14. 朴素贝叶斯的应用_TF-IDF实例
  15. Java通过javacsv实现读取csv文件数据
  16. 京东超级秒杀时间html,京东418超级秒杀节LOGO及使用规范
  17. 职场小白新建SSM项目
  18. Word美化代码块样式
  19. sqlserver关于always on的总结
  20. 格网DEM生成不规则三角网TIN

热门文章

  1. 有一个文件上传成功 2:03:58.m4a | MixTalk S01-10
  2. 电商4.0项目【三】: 用户模块(8081)
  3. [附源码]Python计算机毕业设计Django游戏交易平台
  4. 荣耀linux版笔记本换硬盘,存储不够?小白首次拆机,荣耀MagicBook Pro升级硬盘记...
  5. MyBatisPlus-9-公共字段自动填充
  6. 汇正财经骗局?中字头助力大盘站上3300
  7. CF 1667B Optimal Partition
  8. java读取linux隐藏文件,linux-文件的特殊权限、隐藏权限
  9. 微信公众号的初心与偶然
  10. QoS mechanisms-congestion avoidance(拥塞避免)