我需要一些帮助。我需要将一些值与一个包含值的变量匹配,该值是使用Angular.js或Javascript的逗号分隔字符串。我在下面解释我的代码。
var special="2,1,4,5";
在这里,我需要搜索,但是这个以逗号分隔的字符串中是否存在1
。如果给定的值存在,它将返回true,否则为false。请帮助。
答案 0 :(得分:3)
使用数组拆分
var found = special.split(",").indexOf("1") > -1;
var special="2,1,4,5";
var found = special.split(",").indexOf("1") > -1;
console.log(found); // true

只是为了证明String的指数不会起作用
var special="2,11,4,5";
var found = special.indexOf("1") > -1;
console.log(found); // true but actual should be false as there is no 1

答案 1 :(得分:0)
您可以先将字符串转换为如下数组:
var specialArray = special.split(',');
拥有数组后,您可以使用indexOf
查找数组中的项目。
var itemIndex = specialArray.indexOf('1');
当您要查找的值不在数组中时, itemIndex
将为-1
。当indexOf
的结果大于-1
时,它是数组中项目的索引。
答案 2 :(得分:0)
试试这个,
var special="2,1,4,5";
var searchFor="1";
var index=special.split(",").indexOf(searchFor);
if(index === -1) return false;
else return true;
答案 3 :(得分:0)
您可以使用正则表达式:
/(^|,)1(,|$)/.test("2,1,4,5") // => true
只是为了测试否定案例
/(^|,)1(,|$)/.test("2,11,4,5") // => false
如果您有多行字符串(包含\r\n
),请改用/(^|,)1(,|$)/m