为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript 匹配逗号分隔字符串中的多个值

JavaScript 匹配逗号分隔字符串中的多个值

弑天下 2021-06-14 12:14:15
我有一个带有一堆数字的字符串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);


查看完整回答
反对 回复 2021-06-18
?
侃侃尔雅

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改用


查看完整回答
反对 回复 2021-06-18
  • 3 回答
  • 0 关注
  • 297 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信