检查数组项的字符串(多个单词)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检查数组项的字符串(多个单词)相关的知识,希望对你有一定的参考价值。

我有一个字符串(超过1个单词)和一个数组,我想检查字符串,并查找该字符串是否包含数组中的任何字符串。

我试过使用include方法但是如果我的匹配字符串只有一个单词就可以了。例如

var arr = ['2345', '1245', '0987'];
var str = "1245"
console.log(str.includes('1245'));

这会有效,但我希望将它与句子相匹配。

var arr =  ['2345', '1245', '0987'];
var str= "Check if the number 1245 is present in the sentence."

我想检查字符串中是否存在此数字。

答案

你可以使用find

var arr =  ['2345', '1245', '0987'];
var str= "Check if the number 1245 is present in the sentence."


let found = (str) => arr.find(e => {
  return str.includes(e)
}) || `${str} Not found in searched string`

console.log(found(str))
console.log(found('878787'))
另一答案

使用Array.prototype.some结合String.prototype.indexOf

var a =  ['2345', '1245', '0987'];
var s = "Check if the number 1245 is present in the sentence.";
var t = "No match here";



function checkIfAnyArrayMemberIsInString(arr, str) {
  return arr.some(x => str.indexOf(x) !== -1);
}

if (checkIfAnyArrayMemberIsInString(a, s)) {
  console.log('found');
} else {
  console.log('not found');
}

if (checkIfAnyArrayMemberIsInString(a, t)) {
  console.log('found');
} else {
  console.log('not found');
}
另一答案

你可以在阵列上使用some()

var arr =  ['2345', '1245', '0987'];
var str= "Check if the number 1245 is present in the sentence."

console.log(arr.some(x => str.includes(x)));
另一答案

试试这个:

function matchWord(S, A) {
  let matchesWord = false
  S.split(' ').forEach(word => {
    if (A.includes(word)) matchesWord = true;
  });
  return matchesWord;
}

console.log(matchWord('Check for the number 1245', ['2345', '1245', '0987']))

以上是关于检查数组项的字符串(多个单词)的主要内容,如果未能解决你的问题,请参考以下文章

使用 viewpager 创建多个片段

使用 Perl 检查数据数组中重复项的最有效方法是啥?

使用PHP和MySQLi进行数据库搜索的多个单词字符串

如何通过数组检查字符串是不是具有匹配的子字符串

片段(Java) | 机试题+算法思路+考点+代码解析 2023

pandas loc 检查值是不是包含多个单词或字符串中的任何一个