如何从生成的代码中删除 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 核心文件夹中可用