簡體   English   中英

正則表達式對Javascript函數的操作

[英]Regex operations on Javascript functions

我正在嘗試在Javascript中查找函數名稱並插入以下代碼

var functionName = arguments.callee.toString().substr('function '.length);
functionName = functionName .substr(0,functionName .indexOf('('));
console.log(functionName);

這會將函數名稱寫入調用的控制台。 我對此不太幸運。 我一直在嘗試使用sed.exe進行變體:

sed "{/function/ s/$/\var ownName = arguments.callee.toString().substr('function '.length);ownName = ownName.substr(0,ownName.indexOf('('));console.log(ownName);/}" *.js

這只是sed "/elephant/ s/$/\\&castle" *.js格式

任何人都知道如何將我要追加的內容發送到下一行,而不是與函數發送到同一行嗎? 另外,如何實現以下內容(但在sed.exe中)以避免匿名函數和eval函數?

grep -Eho "^s*function w+" *.js | sort

謝謝您的幫助。

\\n添加到替換字符串中可用於GNU sed。 我將grep的正則表達式更改為sed的^[[:blank:]]*function \\w\\+ ,並將您的s語句的條件更改為該正則表達式,它可以正常工作。 這是bash語法中的整個命令:

sed "/^[[:blank:]]*function \\w\\+/ s/\$/\\nvar ownName = arguments.callee.toString().substr('function '.length);\\nownName = ownName.substr(0,ownName.indexOf('('));\\nconsole.log(ownName);\\n/" *.js

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM