使用jQuery做;是否包含“;

使用jQuery做;是否包含“;,jquery,Jquery,我有一个字符串数组,我想使用jQuery查看数组中是否包含特定的字符串 我可以用jQuery>执行此操作吗?您可以使用并检查结果是否不是=-1,如下所示: var arr = [ "string1", "string2" ]; jQuery.inArray("string1", arr) // returns 0 jQuery.inArray("string2", arr) // returns 1 jQuery.inArray("string3", arr) // returns -1 关于

我有一个字符串数组,我想使用jQuery查看数组中是否包含特定的字符串

我可以用jQuery>执行此操作吗?

您可以使用并检查结果是否不是
=-1
,如下所示:

var arr = [ "string1", "string2" ];
jQuery.inArray("string1", arr) // returns 0
jQuery.inArray("string2", arr) // returns 1
jQuery.inArray("string3", arr) // returns -1
关于“为什么要使用jquery?”的火焰之战……这是因为旧的IE(可能还有当前的IIRC)没有
Array.indexOf
函数,它只是一个包装器

或者,您可以添加
Array.indexOf
方法(如果不存在),如图所示


我不想在Nick的回答中启动flamewars,但是这个简单的javascript应该也能满足OPs的要求。

我认为这并不总是可行的。如果数组中没有“foo”,但有“food”,那该怎么办?这是一种非常昂贵的方法,可以在本地/优化的代码中做一些事情,除了IE,我不会走这条路,似乎需要很多额外的CPU周期才能得到不太准确/可用的结果,例如,如果是一个数字,数组方法也可以工作。@Nick:毫无疑问,这更像是一个。。可能性的教育性答案:)似乎更接近,但如果没有数组条目“foo”,但有一个带有“foo-bar”呢?尽管如此,我承认OP并不清楚它是要匹配整个数组项,还是要匹配条目中的子字符串。如果是这样,那么你的答案是最正确的;o) @Nick:QuickFirebug.time()基准测试结果:
regex:51ms
jQuery:92ms
超过10.000次迭代。仅针对CPU周期。已处理您的意图是匹配每个数组项中的整个字符串,还是要匹配数组中字符串的任何部分?可能重复
if( $.inArray("theString", theArray) > -1 ) {
    alert('found one');
}
var arr = ["foo", "bar"];
if(/\bfoo\b/.test(arr.join('|'))) alert('yay');