我想匹配和存储字符串在一个数组中使用javascript和需要正则表达式。其他解决方案也赞赏。由'_'分隔,如果只有两个匹配字符串中的那些字符串从数组应该只返回,没有其他匹配应该接受。数组和搜索字符串都是动态的。下面只是一个例子,但解决方案应该匹配任何动态数据。示例问题如下。
let arr1 = ['ef','cd','ab','cdab','efab','cdef','ab/cd/ef','cd/ef,ab','cd/ab','ab/ef']
测试场景:
1.令搜索=“ef_ab”;预期输出为[“efab”,“ab/ef”]
1.令搜索=“ab_cd_ef”;预期输出为['ab/cd/ef','cd/ef,ab']
1.让搜索=“cd”;预期输出应为[“cd”]
任何帮助javascript的问题是赞赏。
我试过下面的正则表达式和循环。这里,给定示例中的word 1可以是ab或cd或ef,word 2和word 3也可以是相同的
let arr1 = ['ef', 'cd', 'ab', 'cdab', 'efab', 'cdef', 'ab/cd/ef', 'cd/ef,ab', 'cd/ab', 'ab/ef']
let regex = /(?=.*word1)(?=.*word2)(?=.*word3)/;
let arr2 = [];
for (i = 0; i < arr1.length; i++) {
if (regex.test(arr1[i]))
arr2.push(arr1[i]);
}
console.log(arr2)
2条答案
按热度按时间4nkexdtk1#
您可以使用输入来形成一系列正则表达式模式,每个模式都必须与输入字符串匹配。与所有正则表达式模式匹配的输入是有效匹配。
vs91vp4v2#
我们需要进行一些排列: