用nodejs獲取代碼中所有的console

test_get_all_console.js



let?fs?=?require("fs")

let?re?=?/console\.\w+\(.*\)/

let?str?=?fs.readFileSync("./1.js",?"utf-8")

//?let?str2?=?str.replace(re,?"")

//?console.log("222->",?str2)

//?找到字符串的結(jié)尾?根據(jù)給定的?"?'?`?返回該字符串,?和其長度

function?find_str_end_by_start(tip,?x,?arr)?{

????let?str?=?"",?length?=?0,?flag?=?false;

????while?(!flag)?{

????????x++

????????length++

????????str?+=?arr[x]

????????if?(arr[x]?==?tip?&&?arr[x?-?1]?!=?`\\`)?{

????????????flag?=?true

????????}

????}

????return?{

????????length,

????????str

????}

}

function?my_replace_console(str)?{

????let?o_str?=?str

????let?arr?=?str.split("")

????let?need_replace_arr?=?[]?//?需要去掉的打印信息

????for?(let?i?=?0;?i?<?arr.length;?i++)?{

????????if?(

????????????arr[i].toLocaleLowerCase()?==?"c"?&&

????????????arr[i?+?1].toLocaleLowerCase()?==?"o"?&&

????????????arr[i?+?2].toLocaleLowerCase()?==?"n"?&&

????????????arr[i?+?3].toLocaleLowerCase()?==?"s"?&&

????????????arr[i?+?4].toLocaleLowerCase()?==?"o"?&&

????????????arr[i?+?5].toLocaleLowerCase()?==?"l"?&&

????????????arr[i?+?6].toLocaleLowerCase()?==?"e"?&&

????????????arr[i?+?7].toLocaleLowerCase()?==?"."

????????)?{

????????????let?item_need_replace?=?"console.";?//?當(dāng)前需要去掉的打印信息

????????????//?找第一個括號?之后找第二個括號?

????????????//?若遇到字符串?則先找到字符串的結(jié)尾?期間遇到的所有括號和轉(zhuǎn)義過的

????????????let?x?=?i?+?7

????????????let?flag?=?false

????????????let?flag_kuohao?=?true?//?括號是完美的(即沒有括號或者括號是成對的)

????????????let?kuohao_L?=?[]

????????????//?while(!arr[x]?==?")")?{

????????????while?(!flag)?{

????????????????x?+=?1

????????????????item_need_replace?+=?arr[x]

????????????????//?console.log("當(dāng)前字符串是?item_need_replace",?item_need_replace)

????????????????if?(arr[x]?==?'"')?{

????????????????????let?obj?=?{}

????????????????????obj?=?find_str_end_by_start('"',?x,?arr)

????????????????????item_need_replace?+=?obj.str

????????????????????x?+=?obj.length

????????????????}?else?if?(arr[x]?==?"'")?{

????????????????????let?obj?=?{}

????????????????????obj?=?find_str_end_by_start("'",?x,?arr)

????????????????????item_need_replace?+=?obj.str

????????????????????x?+=?obj.length

????????????????}?else?if?(arr[x]?==?"`")?{

????????????????????let?obj?=?{}

????????????????????obj?=?find_str_end_by_start("`",?x,?arr)

????????????????????item_need_replace?+=?obj.str

????????????????????x?+=?obj.length

????????????????}?else?if?(arr[x]?==?"(")?{

????????????????????kuohao_L.push("(")

????????????????????flag_kuohao?=?false

????????????????}?else?if?(arr[x]?==?")")?{

????????????????????kuohao_L.pop(")")

????????????????????if?(kuohao_L.length?==?0)?{

????????????????????????flag_kuohao?=?true

????????????????????}

????????????????}

????????????????if?(arr[x]?==?')'?&&?flag_kuohao)?{

????????????????????flag?=?true

????????????????}

????????????}

????????????let?flag2?=?false;

????????????while?(!flag2)?{

????????????????x?+=?1

????????????????console.log("x--->",?x)

????????????????let?aaa?=?arr[x]

????????????????console.log("arr[x]--->",?aaa)

????????????????item_need_replace?+=?arr[x]

????????????????if?(arr[x]?==?';'?||?(arr[x]?==?'\r'?&&?arr[x?+?1]?==?'\n'))?{

????????????????????flag2?=?true

????????????????}

????????????}

????????????need_replace_arr.push(item_need_replace)

????????}

????}

????console.log("arr?~?need_replace_arr",?need_replace_arr)

????need_replace_arr.map(it?=>?{

????????o_str?=?o_str.replace(it,?"")

????})

????return?o_str

}

let?res?=?my_replace_console(str)

console.log("?res----->",?res)




1.js 測試文件



let?aaa?=?123;

console.log(123,?"()123123aaa\r\nasaszzz")

console.warn(7777,?"aaaaa<>sa?dASd/?d/as()123123aaa\r\nasaszzz");?//?123

console.log(`

asd

127389()

""

''

`)

console.log()

console.log(777)

console.log(fun()

)


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容