我正在使用 JavaScript 将字符串转换为 Google Blockly 块。
输入字符串类似于"Hello %s World"
- 其中%s
定义了字符串输入。我需要把它变成:
Blockly.Blocks['blockname'] = {
init: function() {
this.appendDummyInput()
.appendField("Hello ")
.appendField(new Blockly.FieldTextInput("input1"), "")
.appendField(" World");
}
};
但是我不确定如何在不使用的情况下实现这一点eval()
,并且由于输入字符串来自用户,我知道使用eval()
不是一个好主意。
我目前的代码是:
currentLine = blockText[x].split(/(%s)/);
for( var y = 0; y < currentLine.length; y++ )
{
if( currentLine[y] == "" )
{
//do nothing
}
else if( currentLine[y] == "%s" )
{
//create a input
}
else
{
//create a label
}
}
但是我不太确定如何创建我需要的 Blockly 代码,而不是在字符串中构建 JavaScript 然后eval()
在最后使用。
有人可以帮我解决这个问题吗?