Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript进行审查/突出显示_Javascript_Html - Fatal编程技术网

使用JavaScript进行审查/突出显示

使用JavaScript进行审查/突出显示,javascript,html,Javascript,Html,我正在尝试创建一个小示例应用程序,用于使用JavaScript突出显示/审查文本区域。首先,我只是想替换这些字母,不过一旦解决了这个问题,我的计划是使用mark.js标记经过审查的单词。现在,当我运行我的应用程序时,我得到了未捕获的TypeError:无法读取第21行null的属性“value” <html> <head> <title>Syntax Highlighting</title> </head> <body>

我正在尝试创建一个小示例应用程序,用于使用JavaScript突出显示/审查文本区域。首先,我只是想替换这些字母,不过一旦解决了这个问题,我的计划是使用mark.js标记经过审查的单词。现在,当我运行我的应用程序时,我得到了未捕获的TypeError:无法读取第21行null的属性“value”

<html>
<head>
 <title>Syntax Highlighting</title>
</head>

<body>
 <form name="badwords" method="post" action="" >
  <textarea name="comments" rows="10" cols="60"></textarea>
 <br />
 <input id="formSub" type="submit" value="Submit!" />
 </form>
</body>
<script type="text/javascript">
 var div = document.getElementById('formSub'); 

 function replaceWords(event) {
 //Prevent form submission to server 
 event.preventDefault();
 var commentContent = document.getElementById('comments');
 var badWords = ["x", "y", "z"];
 var censored = censore(commentContent.value, badWords);
}   

function censore(string, filters) {
// "i" is to ignore case and "g" for global "|" for OR match
var regex = new RegExp(filters.join("|"), "gi");
return string.replace(regex, function (match) {
    //replace each letter with a star
    var stars = '';
    for (var i = 0; i < match.length; i++) {
        stars += '*';
    }
    return stars;
});
}

div.addEventListener('click',replaceWords); 
</script>
</html>

语法突出显示

var div=document.getElementById('formSub'); 函数替换字(事件){ //阻止表单提交到服务器 event.preventDefault(); var commentContent=document.getElementById('comments'); var badWords=[“x”、“y”、“z”]; var-censtered=censtore(commentContent.value,坏话); } 函数检查(字符串、筛选器){ //“i”表示忽略大小写,“g”表示全局“|”表示或匹配 var regex=new RegExp(filters.join(“|”),“gi”); 返回字符串.replace(正则表达式,函数(匹配){ //用星号替换每个字母 var星=''; 对于(变量i=0;i

语法突出显示

var div=document.getElementById('formSub'); 函数替换字(事件){ //阻止表单提交到服务器 event.preventDefault(); var commentContent=document.getElementById('pesho'); var badWords=[“垃圾”、“操”、“贱货”]; console.log(commentContent.value) commentContent.value=censore(commentContent.value,脏话); } 函数检查(字符串、筛选器){ console.log('in') //“i”表示忽略大小写,“g”表示全局“|”表示或匹配 var regex=new RegExp(filters.join(“|”),“gi”); 返回字符串.replace(正则表达式,函数(匹配){ //用星号替换每个字母 var星=''; 对于(变量i=0;i
您按ID查找,但只提供了
名称
属性。您的脚本在
正文
标记之外。唯一允许作为
html
标记的直接子项的标记是
body
head
。您能试着找到一些不太冒犯的示例词吗?你甚至可以用一些虚构的词…@raina77ow这很有道理,谢谢you@Amy我之前遇到了无法读取属性'addEventListener'为null的问题,我认为这是一个DOMloading错误,并错误地认为这可以解决它。谢谢你的提醒,我会纠正的