我有一个带有一堆数字的字符串var matches = '128,126,125,124,123,122,118,117,116,115,99,98,97';如果值与上面提供的字符串中的 匹配,我想使用不同的子字符串进行检查var numbers = '126,125';我试过正则表达式if( $(this).attr('data-ids').match(new RegExp("(?:^|,)"+matches+"(?:,|$)"))){console.log('found'); }else {console.log('not found')}但是正则表达式适用于单个值而不适用于多个值var numbers = '125';我希望这适用于单个和多个匹配项。
3 回答
千巷猫影
TA贡献1829条经验 获得超7个赞
如果订单无关紧要,您可以选择一套并检查每个想要的项目。
var matches = '128,126,125,124,123,122,118,117,116,115,99,98,97',
numbers = '126,125',
has = numbers.split(',').every(Set.prototype.has, new Set(matches.split(',')));
console.log(has);
侃侃尔雅
TA贡献1801条经验 获得超16个赞
您需要在 中切换顺序match。我假设numbers变量的值由$(this).attr('data-ids'). 您需要检查$(this).attr('data-ids')内部是否存在,matches而不是相反。将其更改为:
if (matches.match(new RegExp("(?:^|,)" + $(this).attr('data-ids') + "(?:,|$)"))) {
console.log('found');
} else {
console.log('not found')
}
另外,如果您只想检查子字符串是否存在,则可以RegExp#test改用
添加回答
举报
0/150
提交
取消