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