关于Javascript函数的正则表达式操作

时间:2011-02-25 23:00:01

标签: javascript regex sed grep

我正在尝试在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

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

\n添加到替换字符串中适用于GNU sed。我将grep的正则表达式更改为^[[:blank:]]*function \w\+用于sed,并将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