亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Javascript 正則表達式惰性模式的一個問題?

Javascript 正則表達式惰性模式的一個問題?

MYYA 2019-05-15 10:32:27
正則表達式惰性模式,表示如果表達式能匹配成功前提下,會盡可能的少匹配字符。根據字面意思理解,看我如下代碼varpattern=/a(\w*?)/;varstr='a123a';console.log(str.replace(pattern,'$1'));我預期輸出的是'1',因為惰性模式,匹配一個字符就可以使之匹配成功可實際輸出的是'123a',與貪婪模式輸出一摸一樣這是為什么?
查看完整描述

2 回答

?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

*表示匹配0到多次,所以最少匹配0個字符,因為是惰性匹配,所以匹配一個空字符串,也就是/a(\w*?)/和/a/是等價的;$1表示第一個分組的內容,所以$1恒等于空字符串;因此,str.replace(pattern,'$1')等價于str.replace(/a/,''),也就是把字符串中的第一個a替換成空字符串;注意/a/并不是全局匹配,所以只替換了第一個a;如果想替換所有的a,需要把pattern設置成全局匹配pattern=/a(\w*?)/g;
                            
查看完整回答
反對 回復 2019-05-15
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

$1匹配的是第一個()也就是分組中的匹配內容
w表明匹配所有字符串后面的表示出現0或者任意次?比如do可以匹配do或者doo既然a后面有值那么就全匹配上了
                            
查看完整回答
反對 回復 2019-05-15
  • 2 回答
  • 0 關注
  • 363 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號