JSFiddle - React, Tailwind, and code Playground

by oceog

HTML

Команда
<input id="command" type="text" />
<br>
<div id="output"></div>

CSS

.error {
    background: red;
}

JavaScript

var commands = {
    test: "просто тест",
    random_money: function (min, max) {
        min = min === undefined ? 0 : parseInt(min,10);
        max = max === undefined ? min+1000 : parseInt(max,10);
        if (max <= min) {
            return {
                error: 'max должен быть больше min'
            };
        }
        var ret = {
            result: parseInt(Math.random() * (max - min), 10) + min
        };
        return ret;
    }
};

var output = document.getElementById('output');
document.getElementById('command').addEventListener('input', function (e) {
    var cmdline = this.value.trim().split(/\s+/),
        cmd = cmdline.shift();
    if (commands[cmd] === undefined) {
        return error('такой команды нет');
    }
    if (typeof commands[cmd] != "function") {
        return (output.innerHTML = commands[cmd]);
    }
    var result = commands[cmd].apply(this, cmdline);
    if (result.error) {
        return error(result.error);
    }
    output.innerHTML = result.result;
});

function error(text) {
    output.innerHTML = "<div class='error'>" + text + "</div>";
}