0

ですから、私は正規表現にかなり慣れていません。どんな助けでも大歓迎です。

次の形式の文字列があります。

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>)
4

2 に答える 2

4

正規表現がまったく必要ないようです。

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"]
于 2012-08-23T18:03:49.183 に答える
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));
}

重要なのは、正規表現で先読みを使用して、数字のサブパターンその入力を同時にチェックすることです。

于 2012-08-23T17:59:32.470 に答える