我必须制作一个脚本,可以检查我的textarea是否有任何坏词。一旦用户离开textarea,他们应该出现警告框。之后,应删除该区域中输入的文本。
我需要JavaScript解决方案(请不要jQuery)。
<!DOCTYPE html>
<html>
<head>
<title>RIC</title>
</head>
<body>
<textarea name="ric" id="textarea">
</textarea>
<script>
my_textarea = document.getElementById('textarea');
if (/\b(?=\w)(asshole|fucking)\b(?!\w)/i.test(my_textarea.value)) {
alert("Hey no bad words here!");
} else {
// Okay move on!
}
</script>
</body>
</html>
答案 0 :(得分:3)
这是你能做的。首先创建一个函数,它将检查无效的单词并清除textarea:
document.getElementById('textarea').addEventListener('keyup', filterTextarea, false);
然后将一个事件监听器附加到textarea,每次按下一个键时都会检查它,并将您的函数作为回调传递。
$subject = "Your subject";
$headers = "From: $from ";
mail($to,$subject,$message,$headers);
答案 1 :(得分:1)
此代码应该有效。它还会通过用一组星号字符替换它们来审查这些词。
<!DOCTYPE html>
<html>
<head>
<title>RIC</title>
</head>
<body>
<textarea name="ric" id="textarea" onblur="checkWords()"></textarea>
<script>
function checkWords() {
var my_textarea = document.getElementById('textarea').value;
var pattern = /fox|dog/ig;
if (my_textarea.match(pattern)) {
alert("Hey no bad words here!");
my_textarea = my_textarea.replace(pattern, "****" );
document.getElementById('textarea').value = my_textarea;
}
}
</script>
</body>
</html>
答案 2 :(得分:0)
您的函数未被调用的原因(在页面加载时它会被调用)是因为没有事件处理程序来检查用户何时离开文本区域。您可以使用onChange
或onBlur
在用户离开时触发,但onChange
仅在内容实际更改时触发。
尝试将代码更改为:
<textarea name="ric" id="textarea" onBlur="check()">
</textarea>
<script>
var check = function(){
my_textarea = document.getElementById('textarea');
if (/\b(?=\w)(asshole|fucking)\b(?!\w)/i.test(my_textarea.value)) {
alert("Hey no bad words here!");
my_textarea.value = "";
} else {
// Okay move on!
}}
</script>
对于坏词的检查,如其他人所述,您可以使用<text>.indexOf(<bad word>)
循环一系列“坏词”,并检查是否找到了索引。使用正则表达式可能有一种“更好”的方式,但无法帮助解决这个问题
答案 3 :(得分:0)
这是我的代码,请用坏词填充badword数组,这段代码必须反对坏词,它会。!!!
<div>
<textarea name="ric" id="txtArea" onkeyup="badWordChecker()" onblur="nothingTyped()"> </textarea>
</div>
<script>
function nothingTyped() {
var badWordTextBoxLength = document.getElementById('txtArea').value.length;
if (badWordTextBoxLength == 0) {
alert("YOu cannot leave easily!!!Please type something ");
document.getElementById('txtArea').focus();
return false;
}
}
function badWordChecker() {
//create an array of bad words
var badwords = ["f***", "a****", "f***"];
var badWordTextBox = document.getElementById('txtArea');
var badWordTextBoxValue = badWordTextBox.innerText;
var backgroundcolor = "white";
function isTheWordBad(value, index, array) {
if (value == badWordTextBoxValue) {
alert("hey!No badwords");
badWordTextBox.textContent = "";
return true;
}
else {
return false;
}
}
var result = badwords.filter(isTheWordBad);
}
</script>
</body>