css - 怎樣批量替換目錄下的所有html文件的指定部分?
問題描述
<p id='topnav'> //新修改的代碼</p>
<p id='topnav'> //以前的代碼</p>
有個(gè)主頁的頂部導(dǎo)航和其它的很多子頁的頂部導(dǎo)航是相同的,現(xiàn)在修改了主頁的頂部導(dǎo)航代碼,子頁的也要改了。可是一個(gè)一個(gè)地改實(shí)在是累死我了。有什么工具可以幫我完成這個(gè)工作嗎?
問題解答
回答1:既然是前端,那么就可以用node寫一個(gè)腳本,循環(huán)目錄下的各個(gè)文件,利用正則去替換就好了
所以就是循環(huán)讀取文件內(nèi)容,找到內(nèi)容,提取這一段內(nèi)容,替換,更新保存,至于用什么語言無所謂
PS:如果之前保持良好的代碼組織習(xí)慣的話,這個(gè)問題就不會出現(xiàn),比如頂部導(dǎo)航做成一個(gè)片段,在需要的地方引入,這樣以后修改起來就只要修改一處就好了,所以當(dāng)你發(fā)現(xiàn)你在復(fù)用一長段代碼時(shí),最好拆成一個(gè)單獨(dú)的文件
回答2:文本編輯器就可以 就是那個(gè)win下替代原生文本編輯器的軟件
回答3:一樣的代碼不應(yīng)該引用同一個(gè)模版嗎?
回答4:sublime
回答5:Sublime Text 全文搜索正則替換
回答6:簡單寫了個(gè)循環(huán)替換的腳本,希望能幫到你。需要用到nodejs。安裝Node.js
代碼如下,filesArr為需要替換的文件數(shù)組,XXX是你新修改的代碼:
var fs = require(’fs’);var filesArr = [ ’header.html’, ’child1/nav.html’, ’child2/nav.html’, ’child3/nav.html’];for(var i = 0; i < filesArr.length; i++) { var fileContent = fs.readFileSync(filesArr[i], ’utf-8’); var newCon = fileContent.replace(/(<p id='topnav'>[rn]*)[sS]*([rn]*</p>)/, '$1XXXrn$2'); fs.writeFile(filesArr[i], newCon);}
相關(guān)文章:
1. mysql優(yōu)化 - 關(guān)于mysql分區(qū)2. javascript - 循環(huán)嵌套多個(gè)promise應(yīng)該如何實(shí)現(xiàn)?3. 前端 - IE9 css兼容問題4. css - 移動端字體設(shè)置問題5. html5 - 如何實(shí)現(xiàn)帶陰影的不規(guī)則容器?6. vue.js - vue 打包后 nginx 服務(wù)端API請求跨域問題無法解決。7. javascript - ionic2 input autofocus 電腦成功,iOS手機(jī)鍵盤不彈出8. node.js - 在vuejs-templates/webpack中dev-server.js里為什么要exports readyPromise?9. css3 - rem布局下,用戶瀏覽器的最小字號是12px怎么辦?10. objective-c - iOS開發(fā)支付寶和微信支付完成為什么跳轉(zhuǎn)到了之前開發(fā)的一個(gè)app?
