Javascript jQuery正则表达式搜索-存储所有变量名
我正在更新ECMAScript 5的jQuery语法突出显示脚本,并为JavaScript语法突出显示添加改进。我想搜索我的Javascript jQuery正则表达式搜索-存储所有变量名,javascript,jquery,regex,Javascript,Jquery,Regex,我正在更新ECMAScript 5的jQuery语法突出显示脚本,并为JavaScript语法突出显示添加改进。我想搜索我的code.html()变量并将所有变量名存储在新变量下varNames 变量命名示例: 示例1)。 var a = this; var b = that; var a = this, b = that; 将“a”和“b”添加到变量名列表中 示例2)。 var a = this; var b = that; var a = this, b = that;
code
.html()编码>变量并将所有变量名存储在新变量下varNames
变量命名示例:
示例1)。
var a = this;
var b = that;
var a = this,
b = that;
将“a”和“b”添加到变量名列表中
示例2)。
var a = this;
var b = that;
var a = this,
b = that;
将“a”和“b”添加到变量名列表中
更新:示例3
parseXSL: r => F.parseXML(r).then(F.xsl),
xsl: x => {},
xslTransform: f => {},
将“r”、“x”和“f”添加到变量名列表中
更新2:上面的“示例3”似乎有点不同,但您可以有以下内容:
blob: r => r.blob(),
arrayBuffer: r => r.arrayBuffer(),
blobType: type=> r=> F.arrayBuffer(r).then(a=>new Blob([a],{type:type})),
url: blob =>
而我会在后面的任何地方给“blob”变量加亮
url:
而不是在此之前,因此在中不会突出显示“blob”
r.blob(),
如果这是另一个大概,请让我知道,我会删除它
从这里开始,试着找出答案,看看我能不能得到这个答案
工作太多,如果没有张贴另一个问题
更新3:我上面说的似乎与所有变量名都一致!它们仅应在定义为变量名后突出显示
任何变量名和“THIS”(“示例:THIS”)都应该包装在
中,以便稍后在脚本中替换为
,否则会出现一些错误
正在搜索变量名:
对于示例1),更容易获得的变量名是/(var)([a-zA-Z0-9_]+)/
,但是我已经很久没有使用正则表达式了,变量值可以是任何包含多个逗号的变量,所以我不确定如何找到示例2。
问题:
如何搜索包含$('pre').html()的code
变量编码>并存储所有变量名
更新3:问题
如何找到所有需要的名称
- 一经发现:
- 在查找点之后,如何包装该单词的所有出现
我不确定我是否理解正确,但根据你的问题,我做出了以下假设:
- 您试图在一个实际为JavaScript的示例文本中查找所有变量
- 匹配需要找到以逗号分隔的变量
如果这是您所需要的,下面是JavaScript中的代码片段,它返回变量列表:
//提取变量
var regex=/(?:var | const | let)\s+((?:[^,=]+,)*[^,=]+?)\s*=/g;
var text=document.getElementById('main').innerHTML;
var变量={};
var match=regex.exec(文本);
while(匹配!==null){
var variableArraySplitByComma=match[1]。拆分(',');
对于(var i=0;iregex不是很好的解决方案),最好的方法是将代码拆分为标记,例如['var','a','=','this',';','\n']
这可以通过使用regex进行.split
,然后确定world是否为var@MaciejKozieja这是我在上的正在进行的工作正则表达式。我是否能够在.split()中使用正则表达式,例如我的正在进行的工作
function?大约一年前,我还试图让语法更轻一些,从我所了解到的情况来看,regex不适合这样做,因为它对contex的了解还不够。遗憾的是:/对我来说,你最好能用它来计算所有单词follow by=必须是可变的([a-zA-Z]\w*)\s*=
如果不使用严格和跳过属性true@MaciejKozieja到目前为止,一切都取得了很好的进展,但是我正在进行的JavaScript更新(如本次更新)证明有点棘手!我是否能够在.split()中使用正则表达式(如我正在进行的工作)
函数?谢谢你。这似乎可行,但它引发了一个错误jQuery。延迟异常:无效正则表达式:/e options.body
-在我放置代码后,它也会破坏我的脚本。你能不能也进行编辑/修改,以便将值存储在这样一个变量中;var varNames=一二三'
,我觉得这将有助于我下一步添加另一个regex替换,我将您的代码放在下面的位置,以包装使用$1
找到的所有变量名,如果您查看我的实例,您将看到这一点。请参考我的,因为我在发短信时注意到,当未声明时,您的代码不会捕获所有变量(var | const | let)
。我对正则表达式还很陌生,但我正在努力解决,看看我是否能找出如何看到底是否有;
停止并,
获取一个新的变量名。很抱歉,所有这些消息,当我收到你的回复时,我会清除它们,也许现在是晚上,你在哪里?只是想把你链接到这显示了从我的示例语法中提取的变量名突出显示脚本输入,注意第43行const ct=r
它没有在第53行显示ct
,const xsl
,我想在控制台中还有一些。log
嗨,我已经更新了正则表达式。现在它应该匹配更多的情况。它仍然不适用于(let variable of…`等),因为它没有等号。在使用;
匹配变量名时,很难实现:只需想象一个函数声明,等等。