我在導航樹中有節點。我想選擇所有屬於網址一部分的節點,這樣我就可以突出顯示它們。我有它的工作,但忘了邊緣的情況下,網址的最後一部分以相同的字符串開始。檢查url正則表達式的一部分
在這種情況下,如果有人在url /products/foobar-super
我希望它選擇/products
和/products/foobar-super
但不是/products/foobar
。
describe('part of url', function() {
it('matches /products and /products/foobar-super', function() {
var current = '/producten/foobar-super';
var nodes = [
'/products',
'/products/foobar',
'/products/foobar-super',
];
var result = [];
nodes.forEach(function (node) {
if (new RegExp(node + '.*').test(current)) {
result.push(node);
}
});
result.should.eql([
'/products',
'/products/foobar-super',
]);
});
});
的jsfiddle與測試:http://jsfiddle.net/RKDga/2/
不知道是否有可能用正則表達式的其他解決方案,我的猜測是分裂節點和/
當前的URL比較這些。
是的!第二個,將URL分開並檢查。它非常簡單,你可以在一個月內回到它,並確切地瞭解它的功能。我建議你自己編寫這段代碼,並自己回答這個問題,我懷疑你可以做得很好。 – 2013-03-17 19:44:22
只是寫了它猜測我被卡住想用這個正則表達式解決這個問題。 – Pickels 2013-03-17 19:47:43