博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js的replace函数入参为function时的疑问
阅读量:6907 次
发布时间:2019-06-27

本文共 1028 字,大约阅读时间需要 3 分钟。

  近期在写js导出excel文件时运用到replace方法,此处详细的记录下它各个参数所代表的的意义。

定义和用法

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

语法

stringObject.replace(regexp/substr,replacement)

返回值

一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。返回值

 

   这里的 replacement 可以是函数而不是字符串,就是我们所说的 replace 的入参 function 。

 

举个栗子

匹配字符串 "abcdefg" :

'abcdefg'.replace(/a(...).(.)/g,function(a,b,c,d,e,f){    console.log(a,b,c,d,e,f)}) // 输出 abcdef bcd f 0 abcdefg undefined"undefinedg"

说明:

/a(...).(.)/g  : 最前面的 "/" 与最后面的 "/" 是分隔符,表示正则表达式的开始与结束        g  : 表示正则表达式使用的global(全局)的状态.使用 global 标志表明在被查找的字符串中搜索操作将查找所有符合的项,而不仅仅是第一个.这也被称为全局匹配.           【相关的标志还有i(ignoreCase,表示忽略大小写)、m(multiline,表示允许跨行)】 (...) 正则中的小括号,是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。  .      表示任意字符,括号里的三个...表示匹配三个任意字符。      

 function中参数说明:

  a:第一个参数,为正则所匹配到的内容,此处为 abcdef

    

  b、c : 第二个及以后的为 正则表达式中分组的内容,因为有两个 () 所以有两个分组,分别为b,c保存。

  d      : 匹配成功时所在的位置。

  e      : 整个字符串,此处为 abcdefg     

       f       : 然后就没有了(所以f是 undefined )

 

为啥最后输出还有个“undefinedg”,没查明白,欢迎盆友们查到了告诉我一下哈~

 

再粘个栗子体会下:

 

转载于:https://www.cnblogs.com/zhangym118/p/6235998.html

你可能感兴趣的文章
DPM2012学习(一),安装DPM2012
查看>>
文件迁移:将/home迁移到一个独立分区中
查看>>
python脚本按表备份MySQL数据库
查看>>
nio Selector 阻塞 唤醒 原理
查看>>
左旋转字符串
查看>>
android StringBuffer类的使用
查看>>
JSP/Servlet及相关技术详解(二)
查看>>
自动点胶机点胶不良率高是什么原因?
查看>>
Win2003中配置FTP服务,开启防火墙导致客户端无法连接【精华详解】
查看>>
【云计算】Linux从入门到精通
查看>>
oracle 解锁用户
查看>>
Hibernate与Mybatis/iBatis的区别
查看>>
Java源码学习之:Semaphore
查看>>
林仕鼎谈架构设计与架构师
查看>>
操作系统CnetOS_7—systemd管理实践指南
查看>>
cocos2d-x滚屏简单实现
查看>>
我的友情链接
查看>>
ThinkPHP的where方法的in操作符说明
查看>>
Maven的依赖
查看>>
MySQL 5.5 安装方法 详细图解
查看>>