मेरे पास नीचे दिए गए jquery स्निपेट हैं जो किसी भी लिंक के लिए फ़िल्टर करते हैं जिसमें एक विशिष्ट एक्सटेंशन है जो नियमित अभिव्यक्ति में उल्लिखित है। इस स्थिति में, मैं जांचना चाहता हूं कि क्या href मान शुरू होता है http://www.xyz.com
। वह कैसे किया जा सकता है?
$("a:regex(href,\.(zip|mp\d+|mpe*g|pdf|docx*|pptx*|xlsx*|jpe*g|png|gif|tiff*))$").live("click", function (e) {
// do some action..
});
रेगेक्स हेल्पर फ़ंक्शन नीचे है
jQuery.expr[":"].regex = function (elem, index, match) {
var matchParams = match[3].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));
}
उत्तर:
जवाब के लिए 2 № 1यह मुझे ऐसा लगता है जैसे रेगेक्स में एक त्रुटि है (की स्थिति के साथ) $
)। लेकिन यहाँ आप चयनकर्ताओं की श्रृंखला कैसे करेंगे:
$("a[href^=http://www.xyz.com]:regex(href,\.(zip|mp\d+|mpe*g|pdf|docx*|pptx*|xlsx*|jpe*g|png|gif|tiff*)$)").live("click", function (e) {
// do some action..
});