输入框要求输入两个特定的单词

时间:2018-12-08 16:59:54

标签: javascript input box inputbox

我对此并不陌生,所以希望我能很好地解释我的问题所在。

我有一个测验,为了回答我创建了一个输入框。要到达另一个链接,您必须在其中放置两个单词,但顺序也无所谓。写下“ word1 word2”或“ word2 word1”无关紧要,只有一条规则:两个单词都应同时提及。 有可能吗?

到目前为止,我的代码:

        function checkText()
    {
        var textwunf_1 = document.getElementById("wunf").value;
        if(textwunf_1.toLowerCase() == "word1" && "word2"){

    window.open("URL","_self"); 

        }
    else{

    xxx 

        }
    }

它不起作用。

在我只想检查是否使用一个单词之前,像这样:

var textwunf_2 = 'word1';

    function checkText()
    {
        var textwunf_1 = document.getElementById("wunf").value;
        if(textwunf_1.toLowerCase().indexOf(textwunf_2) == -1){

    xxx

        }
    else{
            window.open("URL","_self"); 

        }
    }

这行得通,但是我不能用两个词来使用,因为如果我写

var textwunf_2 = 'word1 word2';

顺序不能为'word2 word1'...

我的问题有解决方案吗?

希望任何人都能理解和帮助我,谢谢!

3 个答案:

答案 0 :(得分:0)

基于OP的评论:

  

如果用户键入3个单词,并且其中两个单词与答案匹配,那也应该没问题!只要用户输入我的两个单词,甚至可以输入三个或三个以上的单词,那就更好了。

您可以使用if上的两个条件来检查两个单词是否都是文本:

  

textwunf_1.toLowerCase()。indexOf(“ word1”)> = 0

     

AND

     

textwunf_1.toLowerCase()。indexOf(“ word2”)> = 0

尝试下一个代码:

var textwunf_2 = 'word1';
var textwunf_3 = 'word2';

function checkText()
{
    var textwunf_1 = document.getElementById("wunf").value;

    if ((textwunf_1.toLowerCase().indexOf(textwunf_2) >= 0) &&
        (textwunf_1.toLowerCase().indexOf(textwunf_3) >= 0))
    {
        window.open("URL","_self");
    }
    else
    {
        // xxx
    }
}

答案 1 :(得分:0)

另一种方法:

var words = ["word1", "word2"];

function CheckWords() {
  var inputWords = document.getElementById("wunf").value.split(' ');
  var allWordsFound = true;
  if (inputWords.length !== words.length) { return false; }
  inputWords.forEach(function(word) {
    if (words.indexOf(word.toLowerCase()) === -1) {
       allWordsFound = false;
       return;
    }
  });
  return allWordsFound;
}

console.log(CheckWords());

答案 2 :(得分:0)

我正在创建一个接收文本的函数,并检查是否包含答案(xxyy),顺序无关紧要。 ans列表可以包含1,2个或更多的单词,它将起作用。

let ans = ['xx','yy'];

function check(text){
  text = text.toLowerCase();
  let counter = 0;
  ans.forEach((x) => {text.includes(x) && counter++ })
  return counter === ans.length
}

console.log(check("aa bb")) // false
console.log(check("xx bb")) // false
console.log(check("aa yy")) // false
console.log(check("xx yy")) // true
console.log(check("yy xx")) // true