JS学习笔记——正则表达式在replace()函数中的小技巧

  本篇学习笔记内容源于《Secrets of the JavaScript Ninja》

  作为String对象的一个重要方法,replace()函数在JS中发挥着重要作用,当正则表达式作为第一个参数使用该函数时,用法如下:

"ABCDEfg".replace(/[A-Z]/g,"X")

上面的语句结果为:XXXXXfg

  上面的例子比较好理解,第一个参数为正则表达式,用于在字符串中进行全局匹配,第二个参数为一个字串,当第一个参数与字符串匹配成功后,用第二个字串替换匹配成功的部分。

  第二个参数为一个固定字串,但如果是一个函数时,replace()函数便能够发挥更大的作用。当第二个参数为一个函数时,该函数在每一次匹配成功后被触发执行,且每次触发时,函数接收的参数如下(按照出现顺序):

  1)匹配的全部文本

  2)每一次匹配生成的捕获,每一个捕获对应一个参数

  3)每次匹配文本在原字符串中的索引位置(index)

  4)源字符串

  例如:在CSS中,样式表中描述字体大小的属性为font-size,如果我们想把这个属性名变为驼峰结构:fontSize,JS程序如下:

function upper(all, letter) { return letter.toUpperCase(); }
var theSource = "font-size";
var theResult = theSource.replace(/-(\w)/g, upper);
console.log(theResult);

  

原文地址:https://www.cnblogs.com/bingbing/p/2915450.html