浅谈jQuery中replace()⽅法
今天在读jquery源码时,发现⼀个以前⾃⼰不曾注意过得问题,就是replece()的第⼆个参数为函数时的问题,以前只是知道replace()的第⼆个参数可以为函数,但是不知道该怎么操作,今天看到源码⾥⽤到了函数作为replace()的第⼆个参数时,感觉⾃⼰读起来⽐较吃⼒,于是准备整理下这个函数...
语法
返回值
返回⼀个新的字符串,是⽤replacement替换了regexp的第⼀次匹配或所欲匹配之后得到的
当replace()⽅法的参数replacement是函数时,在这种情况下,每个匹配都调⽤该函数,函数返回的字符串作为替换⽂本使⽤。该函数的第⼀个参数是匹配模式的字符串。接下来的参数是与模式中的⼦表达式匹配的字符串,可以有0个或多个这样的参数。接下来的参数是⼀个整数,声明了匹配在stringObject中出现的位置。最后⼀个参数是stringObject本⾝。这席话是抄⾄w3cschool,对于现在的我来说以上的那段话我看着不是很明⽩,也不能⽤⾃⼰的话来简单描述下,所以只能⽤实例来说明这⼀切
复制代码代码如下:
var string = "abc123-ii";
console.log( str1 );// 3-i
console.log( str2 );// 3(第⼀个捕获)
console.log( str3 );// i(第⼆个不捕获组)
console.log( str4 );// 5(匹配在string中出现的位置)
console.log( str5 );// abc123-ii(string本⾝)
return "I";
})
以上是今天我在看jquery源码
复制代码代码如下:
camelCase: function( string ) {
place( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );jquery源码在线
},
fcamelCase = function( all, letter ) {
UpperCase();
};
  时所引发的⼀些不明⽩,感觉现在⾃⼰对这个函数懂了的样⼦
然后现在我⼜想起不知道在以前什么时候,⾃已在⽤repleace()所遇到的对于那时的我来说是怪符号,形如“$1,$2”等等。现在夜来对这⼀问题来做⼀个解答了
$1,$2, $3.....表⽰捕获1,2,3....
复制代码代码如下:
var string = "abc123-ii";
console.place(/(\d)-([\da-z])/g, "$1")); // ⽤捕获组1(3)去替换/(\d)-([\da-z])/g
$&表⽰与regexp相匹配的⼦串
复制代码代码如下:
var string = "abc123-ii";
console.place(/(\d)-([\da-z])/g, "$&")); // ⽤与regexp相匹配的字串(3-i)去替换/(\d)-([\da-z])/g
$`表⽰位于匹配⼦串左侧的⽂本
复制代码代码如下:
var string = "abc123-ii";
console.place(/(\d)-([\da-z])/g, "$`")); // ⽤匹配字串左侧的⽂本(abc12)去替换/(\d)-([\da-z])/g
$'表⽰位于匹配⼦串右侧的⽂本
复制代码代码如下:
var string = "abc123-ii";
console.place(/(\d)-([\da-z])/g, "$‘")); // ⽤位于匹配字串右侧的⽂本去替换/(\d)-([\da-z])/g
 $$直接为$符号
复制代码代码如下:
var string = "abc123-ii";
console.place(/(\d)-([\da-z])/g, "$$")); // ⽤$符号去替换/(\d)-([\da-z])/g
以上是⾃⼰对于replace()⽅法使⽤不明确的地⽅,本⼈前端⼩⽩,如果有写的不对的地⽅,或者有关于此⽅法更好⽤法的实例希望各位看官能够分享...
以上所述就是本⽂的全部内容了,希望⼤家能够喜欢。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。