我正在更新ECMAScript 5的jQuery语法高亮脚本,并为JavaScript语法高亮添加了改进。我想搜索我的code
.html();
变量,并将所有变量名称存储在新变量varNames
下。
示例1)。
var a = this;
var b = that;
将“a”和“b”添加到变量名称列表
示例2)。
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:看来我上面说的与所有变量名一致!它们只应突出显示
after
它们已被定义为变量名称!任何变量名称和“THIS”(“示例:这个”)都应该有意地包含在
<spanvar></spanvar>
中,以便稍后在我的脚本中替换为<span class="var"></span>
,否则会出现一些错误。
对于示例1)。,要获取的变量名称要容易得多,/(var )([a-zA-Z0-9 _]+)/
可以使用,但是我没有使用正则表达式,变量值可能是任何包含多个逗号的内容,所以我不确定如何找到示例2。。
code
的{{1}}变量并存储所有变量名称?更新3:问题
- 如何找到所有想要的名字
醇>
- 找到一个:
- 如何在发现点后包装所有出现的单词?
答案 0 :(得分:2)
我不确定我是否理解正确,但我根据你的问题做了以下假设:
如果这是您所需要的,这里是JavaScript中的代码片段,它返回一个变量列表:
// extract the variables
var regex = /(?:var|const|let)\s+((?:[^,=]+,)*[^,=]+?)\s*=/g;
var text = document.getElementById('main').innerHTML;
var variables = {};
var match = regex.exec(text);
while(match !== null) {
var variableArraySplitByComma = match[1].split(',');
for(var i=0; i<variableArraySplitByComma.length; i++) {
variables[variableArraySplitByComma[i]] = true;
}
var match = regex.exec(text);
}
// values is an object to keep the values unique
var uniqueVariables = Object.keys(variables);
console.log(uniqueVariables);
&#13;
#main {
white-space: pre;
font-family: monospace;
}
&#13;
<div id="main">
var test= 123;
const hello = "this is a test.";
let test2,variable ={'variable':1};
hello.html();
test2.html();
</div>
&#13;