我需要選擇具有特定格式URL的鏈接。 我可以使用sizzle來評估正則表達式的鏈接的href屬性嗎?嘶嘶聲選擇器可以評估正則表達式嗎?
例如,我可以做這樣的事情:
var arrayOfLinks = Sizzle('a[HREF=[0-9]+$]');
創建其URL的數字結尾的頁面上的所有鏈接的數組?
我需要選擇具有特定格式URL的鏈接。 我可以使用sizzle來評估正則表達式的鏈接的href屬性嗎?嘶嘶聲選擇器可以評估正則表達式嗎?
例如,我可以做這樣的事情:
var arrayOfLinks = Sizzle('a[HREF=[0-9]+$]');
創建其URL的數字結尾的頁面上的所有鏈接的數組?
試試看。我試圖將Kobi鏈接到的jQuery正則表達式選擇器轉換爲Sizzle選擇器擴展。似乎工作,但我沒有通過大量的測試。
Sizzle.selectors.filters.regex = function(elem, i, match){
var matchParams = match[3].split(',', 2);
var attr = matchParams[0];
var pattern = matchParams[1];
var regex = new RegExp(pattern.replace(/^\s+|\s+$/g,''), 'ig');
return regex.test(elem.getAttribute(attr));
};
在這種情況下,您的例子可以寫成:
var arrayOfLinks = Sizzle('a:regex(href,[0-9]+$)');
我試過,但沒有足夠的時間來找出API(看起來不怎麼記錄)。我不認爲它支持本地,但你可以寫一個插件,就像jQuery - http://james.padolsey.com/javascript/regex-selector-for-jquery/ – Kobi 2010-11-11 19:42:54
@Kobi。感謝您花時間看看這個。不幸的是,在這種情況下,我不太可能添加jQuery和插件。 – KatieK 2010-11-11 20:02:03