根据js中的用户输入搜索单词

时间:2019-06-11 21:21:20

标签: javascript

因此,我在下面的设置中,用户输入文本,并且我想查看是否有任何输入的字符与单词匹配。当我输入说出来时,一切都很好。

const input = 'memb';

但是如果做这样的事情。

 const input = 'member has';

然后返回false。如果找到匹配的字符,则为true,member为匹配。成员have也是一个匹配项,因为字符m,e,m,b,e,r仍然是匹配项,尽管h,a,s与其他任何单词都不匹配。

任何人都知道,如果字符匹配,我如何才能保持其返回true?

const input = 'member has';
const inputLower = input.toLowerCase();
const words = ['member', 'support', 'life'];
const result = words.some(word => {
  const words = word.split(',');
  return words.some(r => r.toLowerCase().includes(inputLower));
});

console.log('result = ', result);

1 个答案:

答案 0 :(得分:0)

您可以添加反向逻辑,还可以在其中检查inputLower是否包含r

const input = 'memb has';
let inputLower = input.toLowerCase();
const words = ['member', 'support', 'life'];
const result = words.some(word => {
  const words = word.split(',');
  return words.some(r => {
    if (~inputLower.indexOf( " " )) {
    // only check the first word if there are multiple
      inputLower = inputLower.substring( 0, inputLower.indexOf( " " ) );
    }
    return r.toLowerCase().includes(inputLower) || inputLower.includes(r.toLowerCase());
  });
});

console.log('result = ', result);