如何从生成的代码中删除 highlightBlock 字符串
How to remove highlightBlock strings from generated code
我有一个 Blockly 应用程序,它生成以下代码作为字符串。
highlightBlock(':_1ku_aN%|65~:kO;KFA');
start();
highlightBlock('3TGkH,fdPJ^sYiBQj{uX');
moveForward();
这是我用来显示代码的函数:
function showCode() {
Blockly.JavaScript.INFINITE_LOOP_TRAP = null;
var code = Blockly.JavaScript.workspaceToCode(workspace);
document.getElementById("JSCode").innerText = code;
console.log(code)
}
如何删除 highlightBlock('some-id');\n
字符串?也许使用正则表达式?
您可以使用
的索引首先根据换行符拆分字符串,即使用 (;),然后使用循环检查数组字符串包含突出显示将所有行推送到数组中,然后使用您执行的其他行的其余部分拆分该行;
code = code.split(";");
var newcode = []
for(var i=0; i<code.length; code++){
if(code[i].indexOf("highlightBlock") < 0){
newcode.push(code[i]);
}
}
console.log(newcode);
注意:blockly 会随机创建 id,其中分号也是其中的一部分,请将其删除,这样您在拆分时就不会遇到任何问题。
它在 blockly.utils 核心文件夹中可用