1. ホーム
  2. javascript

[解決済み] jQueryセレクタの正規表現

2022-03-16 08:56:52

質問

jQueryのセレクタでワイルドカードや正規表現(正確な用語は不明)を使用する際のドキュメントを入手したいのですが、どのような方法がありますか?

自分で探したのですが、構文や使い方の情報が見つかりません。どなたか、この構文に関するドキュメントがどこにあるかご存知でしょうか?

EDIT: 属性フィルタでは、属性値のパターンに基づいて選択することができます。

どのように解決するのですか?

James Padolseyが作成した 素敵フィルター を使用することで、正規表現を選択することができます。

例えば、次のようなものがあるとします。 div :

<div class="asdf">

パドルジーの :regex フィルタは、このように選択することができます。

$("div:regex(class, .*sd.*)")

また セレクタの公式ドキュメント .

UPDATE : 構文 非推奨 JQuery 3.0

から jQuery.expr[':'] Padolseyの実装で使われているものはすでに非推奨で、最新バージョンのjQueryではシンタックスエラーが発生します。

jQuery.expr.pseudos.regex = jQuery.expr.createPseudo(function (expression) {
    return function (elem) {
        var matchParams = expression.split(','),
            validLabels = /^(data|css):/,
            attr = {
                method: matchParams[0].match(validLabels) ?
                    matchParams[0].split(':')[0] : 'attr',
                property: matchParams.shift().replace(validLabels, '')
            },
            regexFlags = 'ig',
            regex = new RegExp(matchParams.join('').replace(/^\s+|\s+$/g, ''), regexFlags);
        return regex.test(jQuery(elem)[attr.method](attr.property));
    }
});