我需要能够在字符串数组中找到子字符串的代码。这将找到完整的字符串:
var categories = [ "msn.com", "http://gmail.com", "word2" ];
found = $.inArray('http://gmail.com/example', categories);
alert(found); // TRUE
但我希望这也是真的:
var categories = [ "msn.com", "http://gmail.com", "word2" ];
found = $.inArray('gmail.com/example', categories);
alert(found); // FALSE
答案 0 :(得分:1)
更新到:
found = $.inArray('gmail.com/example', categories) !== -1;
根据文档$.inArray()
返回找到的元素的索引,如果没有找到它将返回-1
。
因此,如果您对布尔值感兴趣,那么您可以尝试如上所述。
答案 1 :(得分:0)
在您的示例中,您正在查找类别数组中不存在的字符串。您的示例字符串也大于类别中的字符串
请改为尝试:
// this will return the matching value...
var categories = [ "msn.com", "http://gmail.com", "word2" ],
myString = "gmail.com";
found = $.grep( categories, function ( value, i) {
return (value.indexOf( myString) >= 0)
});
// found is non-empty array if match
答案 2 :(得分:0)
从数组中搜索匹配元素Jquery提供了两种类型的函数
jQuery.inArray( value, array [, fromIndex ] )
和
jQuery.grep( array, function [, invert ] )
答案 3 :(得分:0)
您可以使用.grep()
方法查找文字。
var categories = [ "msn.com", "http://gmail.com", "word2" ]
var Item = "gmail.com";
var found = jQuery.grep(categories, function(value, i) {
return value.indexOf(Item) != -1
}).length;
答案 4 :(得分:0)
您可以使用Array.prototype.reduce ...
执行此操作// this will return the matching value...
var categories = [ "msn.com", "http://gmail.com", "word2" ],
myString = "gmail.com";
found = categories.reduce( function(previousValue, currentValue, index, array){
return (previousValue >= 0) ? previousValue : (currentValue.indexOf( myString) >= 0) ? index : -1 ;
}, -1);
// found is index of first match