Not working... But i did it with your code..
Blockly.Blocks.text_reg = {
init: function() {
this.appendDummyInput("DUMMY_INPUT")
.appendField(new Blockly.FieldImage("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC", 12, 12, ""))
.appendField(new Blockly.FieldTextInput("", this.validator.bind(this)), "TEXT")
.appendField(new Blockly.FieldImage("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==", 12, 12, ""))
.appendField(" ✅")
this.setInputsInline(true);
this.setOutput(true, 'String');
this.setColour(120);
},
validator: function (inputText) {
if (/^([a-zA-Z0-9 _-]+)$/.test(inputText)) {
this.getInput("DUMMY_INPUT").fieldRow[3].setText(" ✔");
} else {
this.getInput("DUMMY_INPUT").fieldRow[3].setText(" ✖")
}
}
};
Blockly.Arduino.text_reg = function (block) {
var text_value = block.getFieldValue('TEXT');
var code = text_value;
return [code, Blockly.Arduino.ORDER_NONE];
};