gpt4 book ai didi

javascript - 如何在文件中找到 javascript 方法名称?

转载 作者:行者123 更新时间:2023-11-30 18:51:09 25 4
gpt4 key购买 nike

任何人都可以帮助我在 javascript 文件中使用正则表达式查找方法名称。

最佳答案

(?!function\s+)([_$a-zA-Z][_$a-zA-Z0-9]*)(?=\s*\()

尝试使用正则表达式解析 JavaScript 时,您可能会遇到很多问题。首先,我们有一些在正常情况下会被词法分析器忽略的事情。

WhiteSpaceLineTerminatorComment

Now the concept of white space is not as simple as a space character. Here is a full list of characters that must be covered in your regexp.

WhiteSpace:    '\u0009'    '\u000c'    '\u00a0'    '\u180e'    '\u2001'    '\u2003'    '\u2005'    '\u2007'    '\u2009'    '\u202f'    '\u3000'    '\u000b'    '\u0020'    '\u1680'    '\u2000'    '\u2002'    '\u2004'    '\u2006'    '\u2008'    '\u200a'    '\u205f'    '\ufeff'

Right off the bat our regexp has ballooned in complexity. Now we have the LineTerminator production which once again is not as simple as you would think.

LineTerminator:    '\u000a'    '\u000d'    '\u2028'    '\u2029'

I won't go into more detail but here are a few examples of perfectly valid function definitions.

function
a() {

}

function /*Why is this comment here!!!*/ a() {

}

所以我们有一些好消息和一些坏消息。好消息是我的简单正则表达式将涵盖大多数常见情况。只要该文件以合理的方式编写,它就应该可以正常工作。坏消息是,如果您想涵盖所有 Angular 落案例,您将得到一个正则表达式的怪物。

注意

我只想说匹配有效函数标识符的正则表达式会特别可怕。

关于javascript - 如何在文件中找到 javascript 方法名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3855716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com