0

私の要素がフィルタリングされない理由を誰か説明できますか?

これは本に書いたものであり、彼は false 要素が削除され、要素が true で表示される場合は悲しいことです:

$('li').filter(function() { return this.innerHTML.match(/^\d+$/)})

14.15 で li のみをフィルタリングする必要があります (14.15 で li だけの結果が必要です)。

http://jsfiddle.net/crew1251/MYXYX/

<ul id="list">
    <li>raz</li>
    <li>asdf 14.15</li>
    <li>tri</li>
    <li>chetire_Tri</li>
    <li>pyat</li>


</ul>


$('li').filter(function () {
    return this.innerHTML.match(/^\d+$/);
});
4

2 に答える 2

6

li数字を含む sを見つけたい場合は、次のようにする必要があります。

var listWithDigits = $('li').filter(function () {
    return this.innerHTML.match(/\d+/);
    // return this.innerHTML.match(/\d+$/); // returns lis that end with digits
    // return this.innerHTML.match(/^\d+/); // returns lis that start with digits
    // return this.innerHTML.match(/^\d+$/); // returns lis that contain only digits
});
console.log(listWithDigits.length); // 1

li正規表現をラップしたため、数字のみを含む sのみを受け入れるため、現在の正規表現は失敗しています^$

http://jsfiddle.net/MYXYX/1/

于 2013-10-23T23:42:59.237 に答える
1

間違ったパターンを使用しているため、アンカーを削除する必要があります:

$('li').filter(function () {
    return $(this).html().match(/\d/);
});

複数の数字をテストする必要はないことに注意してください。したがって、+量指定子は役に立ちません。

于 2013-10-23T23:44:42.483 に答える