搜尋

首頁  >  問答  >  主體

css - 怎样批量替换目录下的所有html文件的指定部分?

<p id="topnav">
    //新修改的代码
</p>
<p id="topnav">
    //以前的代码
</p>

有个主页的顶部导航和其它的很多子页的顶部导航是相同的,现在修改了主页的顶部导航代码,子页的也要改了。可是一个一个地改实在是累死我了。有什么工具可以帮我完成这个工作吗?

天蓬老师天蓬老师2873 天前443

全部回覆(6)我來回復

  • PHP中文网

    PHP中文网2017-04-17 15:43:38

    既然是前端,那麼就可以用node寫一個腳本,循環目錄下的各個文件,利用正則去替換就好了

    所以就是循環讀取文件內容,找到內容,提取這一段內容,替換,更新保存,至於用什麼語言無所謂

    PS:如果之前保持良好的程式碼組織習慣的話,這個問題就不會出現,比如頂部導航做成一個片段,在需要的地方引入,這樣以後修改起來就只要修改一處就好了,所以當你發現你在重複使用一長段程式碼時,最好拆成一個單獨的檔案

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-17 15:43:38

    文字編輯器就可以 就是那個win下替代原生文字編輯器的軟體

    回覆
    0
  • 怪我咯

    怪我咯2017-04-17 15:43:38

    一樣的程式碼不應該引用同一個模版嗎?

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-17 15:43:38

    崇高

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-17 15:43:38

    Sublime Text 全文搜尋正規取代

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-17 15:43:38

    簡單寫了個循環替換的腳本,希望能幫到你。
    需要用到nodejs。
    安裝Node.js


    程式碼如下,filesArr為需要替換的檔案數組,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\">[\r\n]*)[\s\S]*([\r\n]*<\/p>)/, "XXX\r\n");
        fs.writeFile(filesArr[i], newCon);
    }

    回覆
    0
  • 取消回覆