NodeJs正則關鍵字查找目錄文件


需求

  關鍵字搜索項目輸出相關方法

技術點

  NodeJs遍歷目錄,讀取文件,正則關鍵字匹配

代碼地址

      giithub 項目長期迭代

/**
 * 使用nodeJs遍歷目錄文件,正則匹配關鍵字搜索console.log打印輸出
 */
var path = require("path");
var fs = require("fs");
// 目錄
var filePaths = ["/Users/xupan/smartX/grampus-wxapp/page/", "/Users/xupan/smartX/grampus-wxapp/pages/", "/Users/xupan/smartX/grampus-wxapp/utils/services/"]
// var filePaths = ["/Users/xupan/smartX/grampus-wxapp/utils/services/userinfo.js"]
console.log("開始.........")
filePaths.forEach(function (filePath) {
    recursiveReadFile(filePath);
})

function recursiveReadFile(fileName) {
    if (!fs.existsSync(fileName)) return;
    if (isFile(fileName)) {
        check(fileName);
    }

    if (isDirectory(fileName)) {
        var files = fs.readdirSync(fileName);
        files.forEach(function (val) {
            // 不斷拼接直到找到文件
            var temp = path.join(fileName, val);
            if (isDirectory(temp)) recursiveReadFile(temp);
            if (isFile(temp)) check(temp);
        })
    }
}

function check(fileName) {
    var data = readFile(fileName);
    // var regExp = /(?=getRequestUrl)\(('\w+')\)/g
    // var regExp = /getRequestUrl\((('|")\w+('|"))\)/g
    // 匹配getRequestApiUrl("xxxx") 或者 getRequestApiUrl('xxxx') 
    var regExp = /getRequestApiUrl\((('|")\w+('|"))\)/g
    var res = data.match(regExp)
    if (res && res.length) {
        // console.log(111111, res.length)
        // console.log(fileName, "\n"+res.join("\n"));
        // 跨行打印輸出  join拼接比循環更簡潔
        console.log("\n" + res.join("\n"));
    }
}

function isDirectory(fileName) {
    if (fs.existsSync(fileName)) return fs.statSync(fileName).isDirectory();

}

function isFile(fileName) {
    if (fs.existsSync(fileName)) return fs.statSync(fileName).isFile();
}

function readFile(fileName) {
    if (fs.existsSync(fileName)) return fs.readFileSync(fileName, "utf-8");
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM