如果字符串与数组中的多个单词匹配,则Javascript会选择该字符串
Javascript select the string if it matches multiple words in array
我有一个字符串"this string中有多个单词",还有一个包含多个单词的数组["There","string","multiple"]。我想将我的字符串与这个数组匹配,如果数组中的所有单词都存在于字符串中,它应该返回true。如果数组中的任何一个单词不在字符串中,则应返回false。
var str = "There are multiple words in this string";
var arr = ["There", "string", "multiple"]
这应该返回true。
var str = "There are multiple words in this string";
var arr = ["There", "hello", "multiple"]
这应该返回false,因为字符串中不存在"hello"。
如何在纯JavaScript中高效地实现这一点?
使用Array.prototype.every()
方法,如果所有元素都通过条件:,则返回true
var str = "There are multiple words in this string";
var arr = ["There", "string", "multiple"]
var arr2 = ["There", "hello", "multiple"]
var result = arr.every(function(word) {
// indexOf(word) returns -1 if word is not found in string
// or the value of the index where the word appears in string
return str.indexOf(word) > -1
})
console.log(result) // true
result = arr2.every(function(word) {
return str.indexOf(word) > -1
})
console.log(result) // false
查看此小提琴
您可以使用Array.prototype.every()
、
var str = "There are multiple words in this string";
var arr = ["There", "string", "multiple"]
var res = arr.every(function(itm){
return str.indexOf(itm) > -1;
});
console.log(res); //true
但请注意,indexOf()
将进行通配符搜索,这意味着
"Therearemultiplewordsinthisstring".indexOf("There")
也将返回除CCD_ 4之外的索引。而且它是区分大小写的。
相关文章:
- 将DOM节点值与字符串Javascript进行比较
- 到UpperCase字符串Javascript中的特定字符索引
- 替换字符串javascript中的所有特殊字符..
- 在数组中查找某些字符串(Javascript)
- 解析特定的字符串Javascript(Node.js)
- 从字符串 JavaScript 中过滤多个正则表达式
- 在字符串 JavaScript 中使用正则表达式替换
- 忽略字符串javascript中的字符
- 如何检查url是否包含多个字符串.Javascript/jquery
- 截断字符串JavaScript
- 计算字符串javascript中的某些单词
- 从'获取本月的最后一天;2015-02-23'字符串(javascript)
- 从字符串javascript中获取键值对
- 从路径字符串 - Javascript 获取所有父路径
- 在字符串Javascript中查找丢失的字母
- AngularJS:如何使所有ng模型都是字符串.JavaScript和长整数
- 将浮点转换为至少有一个小数点的字符串(javascript)
- 替换字符串 JavaScript 中的多个文本
- 检查另一个字符串 JavaScript 中一个字符串是否有任何字符的最佳方法
- 将变量的值包含在 href 字符串 javascript 中