所以我对正则表达式相当新。任何帮助表示赞赏。
我有一个以下格式的字符串:
var str: ".item-61347 .item-79134 .item-79465 .item-96464"
我希望能够提供所有匹配的单词,仅提供一些输入。例如:
input: 13 --> .item-61347 .item-79134
input: 79 --> .item-79134 .item-79465
input: 96464 --> .item-96464
输入将是一个字符串变量,所以理想情况下我希望能够做到这样的事情:
str.match(<regexp with string containing input>)
答案 0 :(得分:4)
看起来根本不需要regexp:
var items = ".item-61347 .item-79134 .item-79465 .item-96464".split(" ");
var itemsThatMatch13 = items.filter( function(v) {
return v.indexOf("13") > 0;
});
//[".item-61347", ".item-79134"]
答案 1 :(得分:2)
这个怎么样:
var testRegex,
testInputs = [13, 79, 96464];
var testStr = '.item-61347 .item-79134 .item-79465 .item-96464';
for (var i = 0, l = testInputs.length; i < l; ++i) {
testRegex = new RegExp('[.]item-(?=[0-9]*' + testInputs[i] + ')[0-9]+', 'ig');
console.log(testStr.match(testRegex));
}
关键是在你的正则表达式中使用前瞻来同时检查数字子模式和你的输入。