Replace TAB by 4 spaces in textarea or text input

JavaScript

function handleTabCharacter(e) {
    if (e.key === "Tab") {
        e.preventDefault();
        let start = e.target.selectionStart;
        let val = e.target.value;
        e.target.value = val.substr(0, start) + "    " + val.substr(e.target.selectionEnd);
        e.target.selectionStart = e.target.selectionEnd = start + 4;
    }
}

HTML

<textarea onkeydown="handleTabCharacter" />

Demo