本篇学习笔记内容源于《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);