Javascript 替换文本区域中的单词

Javascript 替换文本区域中的单词,javascript,jquery,Javascript,Jquery,我想在我的文本区域中用****替换某些单词,但此脚本不起作用。谢谢你的帮助 <TEXTAREA style="color:black;" name="Body" id="Body" value="" rows="6" cols="60" maxlength="160"></TEXTAREA><br/> <script> var input = document.getElementById('Body')[0], output = docu

我想在我的文本区域中用****替换某些单词,但此脚本不起作用。谢谢你的帮助

<TEXTAREA style="color:black;" name="Body" id="Body" value="" rows="6" cols="60" maxlength="160"></TEXTAREA><br/>
<script>
var input = document.getElementById('Body')[0],
    output = document.getElementById('Body')[0],
    badwords = /\b(test|test2|test3)\b/g;

input.onkeyup = function () {
    output.innerHTML = this.value.replace(badwords, function (fullmatch, badword) {
        return '<sub>' + new Array(badword.length + 1).join('*') + '</sub>';
    });
};

input.onkeyup();
input.focus();
</script>

var input=document.getElementById('Body')[0], 输出=document.getElementById('Body')[0], 坏词=/\b(测试2 |测试3)\b/g; input.onkeyup=函数(){ output.innerHTML=this.value.replace(坏字,函数(fullmatch,坏字){ 返回“”+新数组(badword.length+1)。连接('*')+“”; }); }; onkeyup(); input.focus();
这里有一个可行的解决方案,注释中有解释:

//删除[0]。getElementById返回元素,而不是集合:
var input=document.getElementById('Body'),
输出=document.getElementById('Body'),
坏词=/\b(测试1 |测试2 |测试3)\b/g;
//addEventListener是添加侦听器的最佳方法:
addEventListener('keyup',function(){
//在此处将innerHTML更改为值:
output.value=this.value.replace(坏字,函数(完全匹配,坏字){
//删除“…”。文本区域仅支持文本内容。
返回新数组(badword.length+1).join('*');
});
});
input.focus()


这里有一个可行的解决方案,注释中有解释:

//删除[0]。getElementById返回元素,而不是集合:
var input=document.getElementById('Body'),
输出=document.getElementById('Body'),
坏词=/\b(测试1 |测试2 |测试3)\b/g;
//addEventListener是添加侦听器的最佳方法:
addEventListener('keyup',function(){
//在此处将innerHTML更改为值:
output.value=this.value.replace(坏字,函数(完全匹配,坏字){
//删除“…”。文本区域仅支持文本内容。
返回新数组(badword.length+1).join('*');
});
});
input.focus()