Javascript 查找值是否包含在JS中以逗号分隔的值中

Javascript 查找值是否包含在JS中以逗号分隔的值中,javascript,string,Javascript,String,考虑到这两个条件: var first = 'dog,cat,lion'; var second = 'cat'; 如何知道第二个变量是否是第一个变量中的任何单词(用逗号分隔的单词)?这将起作用: if( first.match(new RegExp("(?:^|,)"+second+"(?:,|$)"))) { // it's there } 首先,将字符串拆分为数组: var second = 'cat'; var first = 'dog,cat,lion'; var aFir

考虑到这两个条件:

var first = 'dog,cat,lion';
var second = 'cat';
如何知道第二个变量是否是第一个变量中的任何单词(用逗号分隔的单词)?

这将起作用:

if( first.match(new RegExp("(?:^|,)"+second+"(?:,|$)"))) {
    // it's there
}

首先,将字符串拆分为数组:

var second = 'cat';
var first = 'dog,cat,lion';
var aFirst = first.split(',');
然后循环使用新阵列

for (var i = 0; i < aFirst.length; i++) {
    if (aFirst[i] == second) {
        alert('jay!');
    }
}
for(变量i=0;i
var first='dog,cat,lion';
var stringArray=first.split(',');

对于(var i=0;i您可以使用
Array.indexOf

if( first.split(',').indexOf(second) > -1 ) {
   // found
}

需要IE8支持吗?使用填隙片:

Kolink,如果我需要考虑到第一个字符串可以在逗号之后或之前包含空格,例如“dog、cat、lion”,这真的很困难吗不,只要在有可选空格的地方使用
\s*
就行了。唯一真正复杂的是,如果
second
包含任何特殊的正则表达式字符,它们会破坏搜索。你应该尝试类似于PHPJS的方法。在我的情况下,这只会导致小错误:
要求:csv、doc、docx、html、htm、jpg、ods、odt、pdf、png、ppt,pps、rtf、sww、tab、txt、text、tsv、xls、xlsx
文件扩展名:png
但返回false,因为返回值为“png”,无法正确解析它
要求.match(新的RegExp((?:^ |,)“+fileExtension+”(?:,|$)))。替换(/,\s+//g,,)
区分大小写?逗号中是否总是有一个单词?第二个单词(“cat”)是否必须完全匹配,或者是否要获得任何顺序为“cat”的单词?即“可爱的猫”、“目录”、“散布”…以开始,以结束,包含???Niet的解决方案非常优雅,但许多开发人员对regex不太满意。因此出于实际原因,我更喜欢这一个。其他许多人做了与此相同的事情,但有更多的代码行。干得好,David!
if( first.split(',').indexOf(second) > -1 ) {
   // found
}
var first = 'dog, cat, lion';
var second = 'cat';
// \b is a word boundary
// a word character, \w, consists of letters, digits and underscore
// remove the second paramater "i" if you want case-sensitive match
var containsRE = new RegExp(second, "i"); 
var startsWithRE = new RegExp("\\b"+second, "i"); 
var endsWithRE = new RegExp(second+"\\b", "i"); 
var exactRE = new RegExp("\\b"+second+"\\b", "i"); 
// test exactRE, for example, like so
if(exactRE.test(first)) {
    // matched
}