可能只需要先替换任何不可打印字符:
string = string.replace(/[^ -~]+/g, "");
document.getElementById('demo').addEventListener('input', function(e) {
e.target.innerHTML = e.target.innerHTML.replace(/[^ -~]+/g, "");
console.log(e.target.innerHTML);
});
<textarea id="demo"></textarea>
str.replace(/\p{C}/gu, '');
。请注意,此处需要使用u
标志才能正常工作。不过我不确定这是否适用于所有不可见字符(有点难以测试)。 - paddotk