全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

javascript中replace使用方法总结

ECMAScript提供了replace()方法。这个方法接收两个参数,第一个参数可以是一个RegExp对象或者一个字符串,第二个参数可以是一个字符串或者一个函数。现在我们来详细讲解可能出现的几种情况。

1. 两个参数都为字符串的情况

 var text = 'cat, bat, sat, fat';
 // 在字符串中找到at,并将at替换为ond,只替换一次
 var result = text.replace('at', 'ond');
// "cond, bat, sat, fat"
 console.log(result);


2. 第一个参数为RegExp对象,第二个参数为字符串

我们可以发现上面这种情况只替换了第一个at,如果想要替换全部at,就必须使用RegExp对象。

var text = 'cat, bat, sat, fat';
 // 使用/at/g 在全局中匹配at,并用ond进行替换
 var result = text.replace(/at/g, 'ond');
 // cond, bond, sond, fond
 console.log(result);

3. 考虑RegExp对象中捕获组的情况 

RegExp具有9个用于存储捕获组的属性。$1, $2...$9,分别用于存储第一到九个匹配的捕获组。我们可以访问这些属性,来获取存储的值。

var text = 'cat, bat, sat, fat';
 // 使用/(.at)/g 括号为捕获组,此时只有一个,因此所匹配的值存放在$1中
 var result = text.replace(/(.at)/g, '$($1)');
 // $(cat), $(bat), $(sat), $(fat)
 console.log(result);


4. 第二个参数为函数的情况,RegExp对象中不存在捕获组的情况

var text = 'cat, bat, sat, fat';
 // 使用/at/g 匹配字符串中所有的at,并将其替换为ond,
 // 函数的参数分别为:当前匹配的字符,当前匹配字符的位置,原始字符串
 var result = text.replace(/at/g, function(match, pos, originalText) {
  console.log(match + ' ' + pos);
  return 'ond'
 });
 console.log(result);
 // 输出
 /*
  at 1 dd.html:12:9
  at 6 dd.html:12:9
  at 11 dd.html:12:9
  at 16 dd.html:12:9
  cond, bond, sond, fond dd.html:16:5
 */

5. 第二个参数为函数的情况,RegExp对象中存在捕获组的情况

var text = 'cat, bat, sat, fat';
 // 使用/(.at)/g 匹配字符串中所有的at,并将其替换为ond,
 // 当正则表达式中存在捕获组时,函数的参数一次为:模式匹配项,第一个捕获组的匹配项,
 // 第二个捕获组的匹配项...匹配项在字符串中的位置,原始字符串
 var result = text.replace(/.(at)/g, function() {
  console.log(arguments[0] + ' ' + arguments[1] + ' ' + arguments[2]);
  return 'ond'
 });
 console.log(result);
 // 输出
 /*
  cat at 1 
  bat at 6 
  sat at 11 
  fat at 16 
  cond, bond, sond, fond 
 */

以上为replace方法的所有可以使用的情况,下面我们使用replace和正则表达式共同实现字符串trim方法。

(function(myFrame) {
  myFrame.trim = function(str) {
   // ' hello world '
   return str.replace(/(^\s*)|(\s*$)/g, '');
  };
  window.myFrame = myFrame;
 })(window.myFrame || {});
 // 测试
 var str = ' hello world '
 console.log(str.length); // 15
 console.log(myFrame.trim(str).length); // 11

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# js  # replace  # js正则函数match、exec、test、search、replace、split使用介绍集合  # JS利用正则配合replace替换指定字符  # js中字符替换函数String.replace()使用技巧  # js 页面刷新location.reload和location.replace的区别小结  # js replace 与replaceall实例用法详解  # js使用正则实现ReplaceAll全部替换的方法  # javascript中使用replaceAll()函数实现字符替换的方法  # javascript replace()用法详解附实例代码  # js replace() 文本替换你所不知的  # 详解JS正则replace的使用方法  # 第二个  # 第一个  # 是一个  # 我们可以  # 象中  # 放在  # 并将其  # 并将  # 这种情况  # 几种  # 正则表达式  # 只有一个  # 可以使用  # 分别为  # 一到  # 都为  # 可能出现  # 中不  # 大家多多  # 上为 


相关文章: 娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  建站为何优先选择香港服务器?  开封网站制作公司,网络用语开封是什么意思?  如何自定义建站之星网站的导航菜单样式?  已有域名如何免费搭建网站?  建站之星安装提示数据库无法连接如何解决?  公司门户网站制作流程,华为官网怎么做?  b2c电商网站制作流程,b2c水平综合的电商平台?  小建面朝正北,A点实际方位是否存在偏差?  如何在阿里云ECS服务器部署织梦CMS网站?  XML的“混合内容”是什么 怎么用DTD或XSD定义  如何快速登录WAP自助建站平台?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  北京制作网站的公司,北京铁路集团官方网站?  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  网站图片在线制作软件,怎么在图片上做链接?  网站app免费制作软件,能免费看各大网站视频的手机app?  如何选择高效可靠的多用户建站源码资源?  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  学校免费自助建站系统:智能生成+拖拽设计+多端适配  微信推文制作网站有哪些,怎么做微信推文,急?  如何快速启动建站代理加盟业务?  建站之星后台密码如何安全设置与找回?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  如何快速搭建自助建站会员专属系统?  php json中文编码为null的解决办法  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  建站之星北京办公室:智能建站系统与小程序生成方案解析  网站制作免费,什么网站能看正片电影?  制作宣传网站的软件,小红书可以宣传网站吗?  图册素材网站设计制作软件,图册的导出方式有几种?  如何快速选择适合个人网站的云服务器配置?  安徽网站建设与外贸建站服务专业定制方案  如何在建站之星网店版论坛获取技术支持?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  如何通过虚拟机搭建网站?详细步骤解析  c# await 一个已经完成的Task会发生什么  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何制作算命网站,怎么注册算命网站?  定制建站是什么?如何实现个性化需求?  建站主机与服务器功能差异如何区分?  家庭建站与云服务器建站,如何选择更优?  如何通过NAT技术实现内网高效建站?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  阿里云网站制作公司,阿里云快速搭建网站好用吗?  建站之星logo尺寸如何设置最合适? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。