从两个逗号分隔的字符串中获取所有匹配值

时间:2019-06-30 10:50:03

标签: javascript jquery arrays string

我有两个逗号分隔的字符串,

var hiddenString = '14172,10062,14172,14172,100,10,14172,15000,12000';

var strB = '14172,10062,10064,10025,100,14182';

我需要根据以上两个创建另一个字符串,

如果hiddenStringstrB具有不匹配的值,则没有这些不匹配的值需要创建一个新的字符串,并避免重复。  简单地说,我需要从两个字符串中获取所有匹配的值。

作为基于我的两个字符串的示例,我期望以下内容:

varFinalHiddenString = 14172,10062,100;

如何使用JavaScript做到这一点,它应该在 safari IE 11 或更早的版本中工作。请帮助我,我是JS的新手。

2 个答案:

答案 0 :(得分:4)

您可以首先使用split()字符串从中生成数组。然后通过使用其他数组中的filter()检查当前项的索引,indexOf()较小的数组:

var hiddenString = '14172,10062,14172,14172,100,10,14172,15000,12000';
var strB = '14172,10062,10064,10025,100,14182';
var temp1 = hiddenString.split(',');
var temp2 = strB.split(',');
var varFinalHiddenString = temp2.filter(function(s){
  return temp1.indexOf(s) > -1;
}).join(',');
console.log(varFinalHiddenString);

答案 1 :(得分:0)

制作字符串数组,然后使用“过滤器”方法。然后转换回字符串。

var hiddenString = '14172,10062,14172,14172,100,10,14172,15000,12000';
var strB = '14172,10062,10064,10025,100,14182';

var hiddenStringAsArray = hiddenString.split(',');
var strBArray = strB.split(',');

var resultObject = $(strBArray).filter(hiddenStringAsArray);
var resultArray = resultObject.toArray();
var resultString = resultArray.join(',');

console.log(resultString);