【问题标题】:Forbidden words checker禁止词检查器
【发布时间】:2020-12-07 03:38:30
【问题描述】:

我是堆栈的新手,但这是我的问题:

我正在尝试检查一个 html 输入的值是否包含我在数组中的禁用词之一。

我试过了:

  1. 使用 split(),将 input.value 转换为数组,然后相互比较。
  2. 使用 toString() 将数组转换为字符串,然后比较两者。
  3. 使用包含所有单词的字符串 ("wordone wordtwo wordthree") 而不是数组 (["wordone","wordtwo", "wordthree"])。
  4. 拆分上面的字符串然后比较。
  5. 以及上述示例的一些变体,但始终使用 include() 方法进行检查。

我真的不明白为什么没有任何效果。

当我在数组中只放一个禁用词时,它会起作用。

如果我在输入元素上写了多个单词,即使数组中只有一个单词,它也不起作用。

这是 HTML:

<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 在类中。

【问题讨论】:

  • 请注意,大小写也很重要。 "Foo bar".includes('foo') 为假,但"Foo bar".toLowerCase().includes('foo') 为真

标签: javascript arrays include


【解决方案1】:

includes() 的参数应该是要检查的单个字符串,它不会自动循环遍历数组。您可以使用.some() 方法检查它们是否匹配。

if (forbiddenWords.some(word => field.value.includes(word))) {
    messageBox.innerHTML = "Forbidden!";
} else {
    messageBox.innerHTML = "Okay";
}

【讨论】:

    【解决方案2】:

    希望我没有误会你。

    
        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));
    
    

    【讨论】:

      猜你喜欢
      • 2022-01-25
      • 1970-01-01
      • 2019-08-28
      • 1970-01-01
      • 2021-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-05
      相关资源
      最近更新 更多