Javascript 禁词检查器
我是新手,但我的问题是: 我试图检查html输入的值是否包含数组中的某个禁止字 我试过: 使用split,在数组中转换input.value,然后相互比较。 使用toString将数组转换为字符串,然后比较两者。 将字符串与所有单词wordone wordtwo wordthree一起使用,而不是数组[wordone,wordtwo,wordthree]。 拆分上面的字符串,然后进行比较。 和上面示例的一些变体,但始终使用includes方法进行检查。 我真的不明白为什么什么都不管用 当我在数组中只放置一个禁止的单词时,它就起作用了 如果我在输入元素上写入多个单词,即使数组中只有一个单词,它也不起作用 以下是HTML:Javascript 禁词检查器,javascript,arrays,include,Javascript,Arrays,Include,我是新手,但我的问题是: 我试图检查html输入的值是否包含数组中的某个禁止字 我试过: 使用split,在数组中转换input.value,然后相互比较。 使用toString将数组转换为字符串,然后比较两者。 将字符串与所有单词wordone wordtwo wordthree一起使用,而不是数组[wordone,wordtwo,wordthree]。 拆分上面的字符串,然后进行比较。 和上面示例的一些变体,但始终使用includes方法进行检查。 我真的不明白为什么什么都不管用 当我在数组
<input id="field" type="text" size="100">
<button id="check">check</button>
<p id="announce">Message</p>
以下是JS:
fieldIncludes() {
let field = document.querySelector('#field'); //gets the field
let btn = document.querySelector('#check'); //gets the check-field button
let messageBox = document.querySelector('#announce'); // gets the <p> to show a message
let forbiddenWords = ['wordOne', 'wordTwo', 'wordThree'];
btn.addEventListener("click", () => {
if (field.value.includes(forbiddenWords)){
messageBox.innerHTML = "Forbidden!";
} else {
messageBox.innerHTML = "Okay :)";
}
})
}
请忽略JS在类中。includes的参数应该是一个要检查的字符串,它不会自动循环数组。您可以使用.some方法检查它们是否匹配
if (forbiddenWords.some(word => field.value.includes(word))) {
messageBox.innerHTML = "Forbidden!";
} else {
messageBox.innerHTML = "Okay";
}
includes的参数应该是要检查的单个字符串,它不会自动在数组上循环。您可以使用.some方法检查它们是否匹配
if (forbiddenWords.some(word => field.value.includes(word))) {
messageBox.innerHTML = "Forbidden!";
} else {
messageBox.innerHTML = "Okay";
}
希望我没有误会你
var str = 'you plays like a noob';
function inspect_string(str, arr){
flag = false;
arr.forEach(ar=>{
flag = str.match(new RegExp(ar)) ? true : false;
});
return flag
}
// var arr = ['noob', 'trash'];
var arr = ['nice', 'good'];
console.log(inspect_string(str, arr));
希望我没有误会你
var str = 'you plays like a noob';
function inspect_string(str, arr){
flag = false;
arr.forEach(ar=>{
flag = str.match(new RegExp(ar)) ? true : false;
});
return flag
}
// var arr = ['noob', 'trash'];
var arr = ['nice', 'good'];
console.log(inspect_string(str, arr));
请注意,这种情况也很重要。Foo-bar.includes'Foo'将为false,但Foo-bar.toLowerCase.includes'Foo'将为true请注意,大小写也很重要。Foo-bar.includes'Foo'将为false,但Foo-bar.toLowerCase.includes'Foo'将为true