2 अद्यतन: एक व्यापक उत्तर प्रदान करने की कोशिश में, मैं तीन तरीकों विभिन्न जवाब में प्रस्तावित बेंचमार्किंग कर रहा हूँ। पर मैक ओएस एक्स 10.6.2 फ़ायरफ़ॉक्स 3.5.8 में
var testURL = '/Products/List?SortDirection=dsc&Sort=price&Page=3&Page2=3';
var i;
// Testing the substring method
i = 0;
console.time('10k substring');
while (i < 10000) {
testURL.substring(0, testURL.indexOf('?'));
i++;
}
console.timeEnd('10k substring');
// Testing the split method
i = 0;
console.time('10k split');
while (i < 10000) {
testURL.split('?')[0];
i++;
}
console.timeEnd('10k split');
// Testing the RegEx method
i = 0;
var re = new RegExp("[^?]+");
console.time('10k regex');
while (i < 10000) {
testURL.match(re)[0];
i++;
}
console.timeEnd('10k regex');
परिणाम: मैक ओएस एक्स पर क्रोम 5.0.307.11 में
10k substring: 16ms
10k split: 25ms
10k regex: 44ms
परिणाम 10.6.2:
10k substring: 14ms
10k split: 20ms
10k regex: 15ms
नोट कि substring विधि कार्यक्षमता में कम है क्योंकि यह एक रिक्त स्ट्रिंग देता है यदि URL में क्वेरीस्ट्रिंग नहीं है। उम्मीद के अनुसार, अन्य दो विधियां पूर्ण यूआरएल वापस कर देगी। हालांकि यह ध्यान रखना दिलचस्प है कि सबस्ट्रिंग विधि सबसे तेज़ है, खासकर फ़ायरफ़ॉक्स में।
1 अद्यतन:
var testURL = '/Products/List?SortDirection=dsc&Sort=price&Page=3&Page2=3';
testURL.split('?')[0]; // Returns: "/Products/List"
var testURL2 = '/Products/List';
testURL2.split('?')[0]; // Returns: "/Products/List"
: वास्तव में विभाजन() विधि
suggested by Robusto एक बेहतर समाधान है कि एक मैंने पहले सुझाव दिया है, क्योंकि यह काम करेगा, भले ही कोई क्वेरी स्ट्रिंग है
मूल उत्तर:
var testURL = '/Products/List?SortDirection=dsc&Sort=price&Page=3&Page2=3';
testURL.substring(0, testURL.indexOf('?')); // Returns: "/Products/List"
स्रोत
2010-03-29 20:21:08
संभावित स्निपेट्स के साथ तुलना करने के लायक है [पेज रीफ्रेश किए बिना जावास्क्रिप्ट के साथ window.location (URL) से हैश को कैसे हटाएं?] (Https://stackoverflow.com/questions/1397329/how-to -remove-the-hash-from-window-location-url-with-javascript-without-page-r) – PayteR