javascript - js正規替換問題
高洛峰
高洛峰 2017-07-05 10:55:03
0
2
962
<!DOCTYPE html>
<html>
<head>
    <title>内容</title>
</head>
<body>
中文
<p>内容<i>内容</i></p>
</body>
</html>

將標籤裡面的內容替換為

<!DOCTYPE html>
<html>
<head>
    <title>{{#内容#}}</title>
</head>
<body>
{{#中文#}}
<p>{{#内容#}}<i>{{#内容#}}</i></p>
</body>
</html>

求解正規怎麼寫?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(2)
Ty80

第一,學過編譯原理的話,你就會知道,正規是沒有能力處理巢狀的資料結構的。也就是說,你想透過正規實現【選取 body 中嵌套的 p 的第一個 i 標籤】這樣的需求,在原理上是行不通的。

第二,你要處理的是一個結構化的 DOM 文本,因此可以使用 jQuery 的 parseHTML 方法來實作。透過 jQuery parse 後得到的物件是可以使用 $ 來進一步選擇 p 或 i 等節點的。這就能夠簡單有效地解決你的文字替換問題了。

如果你在 Node 服務端,那麼 jQuery 換成 cheerio 即可。

Ty80

如果只在當前你給的測試文本裡你想做替換,因為情況比較簡單,所以只要寫個([u4e00-u9fa5]+)這樣的正則匹配用{{#$1#}}去替換就行

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板