在JavaScript字符串数组中查找子字符串

时间:2014-06-13 10:02:30

标签: javascript jquery string

我需要能够在字符串数组中找到子字符串的代码。这将找到完整的字符串:

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

5 个答案:

答案 0 :(得分:1)

更新到:

found = $.inArray('gmail.com/example', categories) !== -1;

Fiddle


根据文档$.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 ] )

http://api.jquery.com/jquery.inarray/

http://api.jquery.com/jquery.grep/

答案 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;

Working Fiddle

答案 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