郎朗坤
2018-12-12 19:15:01
var str = "i am syh"; str = str.replace(/\b([a-z])/g,"$1,")這個(gè) $1 和 RegExp.$1 是指同一個(gè)嗎?
1 回答

慕尼黑8549860
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊
如果你按樓上說(shuō)的理解其實(shí)也可以,因?yàn)閱未纹ヅ浯_實(shí)沒(méi)什么差異。
但是全局匹配,在你這個(gè)例子中差異還是很明顯的。
$1 表示的是每次匹配項(xiàng)的第一個(gè)字表式匹配的文本,所以替換的時(shí)候才會(huì)用每次匹配的結(jié)果替換,如果只是用第一次匹配的結(jié)果替換,那返回的就是,i, i,m i,yh 肯定是錯(cuò)的。
RegExp.$1 返回的是最后一次匹配成功的第一個(gè)子表達(dá)式匹配的結(jié)果。所以RegExp.$1 = 's',
因?yàn)槿制ヅ涞臅r(shí)候,索引會(huì)指向上一次匹配結(jié)果最后一位的下一位,你可以簡(jiǎn)單理解成,順著往下排,自然返回的是最后一次匹配成功的結(jié)果。
添加回答
舉報(bào)
0/150
提交
取消