成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

javascript - js正則替換問(wèn)題

瀏覽:104日期:2023-03-07 18:22:03

問(wèn)題描述

<!DOCTYPE html><html><head> <title>內(nèi)容</title></head><body>中文<p>內(nèi)容<i>內(nèi)容</i></p></body></html>

將標(biāo)簽里面的內(nèi)容替換為

<!DOCTYPE html><html><head> <title>{{#內(nèi)容#}}</title></head><body>{{#中文#}}<p>{{#內(nèi)容#}}<i>{{#內(nèi)容#}}</i></p></body></html>

求解正則該怎么寫(xiě)?

問(wèn)題解答

回答1:

第一,學(xué)過(guò)編譯原理的話,你就會(huì)知道,正則是沒(méi)有能力處理嵌套的數(shù)據(jù)結(jié)構(gòu)的。也就是說(shuō),你想通過(guò)正則實(shí)現(xiàn)【選中 body 中嵌套的 p 的第一個(gè) i 標(biāo)簽】這樣的需求,在原理上是行不通的。

第二,你要處理的是一個(gè)結(jié)構(gòu)化的 DOM 文本,因此可以使用 jQuery 的 parseHTML 方法來(lái)實(shí)現(xiàn)。通過(guò) jQuery parse 后得到的對(duì)象是可以使用 $ 來(lái)進(jìn)一步選擇 p 或 i 等節(jié)點(diǎn)的。這就能夠簡(jiǎn)單有效地解決你的文本替換問(wèn)題了。

如果你在 Node 服務(wù)端,那么 jQuery 換成 cheerio 即可。

回答2:

如果只在當(dāng)前你給的測(cè)試文本里你想做替換,因?yàn)榍闆r比較簡(jiǎn)單,所以只要寫(xiě)個(gè)([u4e00-u9fa5]+)這樣的正則匹配用{{#$1#}}去替換就行

標(biāo)簽: JavaScript
相關(guān)文章: