2013-01-16 15 views
6

से यूआरएल का हिस्सा प्राप्त करें। मुझे कुछ तरीकों से एक स्ट्रिंग को तोड़ने में कुछ समस्याएं आ रही हैं।इंडेक्सऑफ और अंतिम इंडेक्स के साथ समस्याएं सबस्ट्रिंग पर - स्ट्रिंग

http://SomeAddress.whatever:portWhatever/someDirectory/TARGETME/page.html 

मैं, स्ट्रिंग पर TARGETME भाग प्राप्त करने के लिए कोशिश कर रहा हूँ regex की सबस्ट्रिंग और indexOf उपयोग करने के बजाय: मैं इस तरह एक यूआरएल है। इस समारोह मैं अब के साथ काम कर रहा हूँ है:

function lastPartofURL() { 
    // Finding Url of Last Page, to hide Error Login Information 
    var url = window.location; 
    var filename = url.substring(url.lastIndexOf('/')+1); 
    alert(filename); 
} 

हालांकि, जब मैं यह लिखा मैं 'page.html' भाग को लक्षित किया गया था, इतना है कि यह क्या देता है, लेकिन मैं मुसीबत को यह पुन: कॉन्फ़िगर करने आ रही हैं जो मैं चाहता हूं वह करो।

यदि संभव हो, तो मैं इसे अंत की बजाय स्ट्रिंग की शुरुआत से उत्पन्न करना चाहता हूं, क्योंकि हमेशा एक यूआरएल होना चाहिए और फिर एक निर्देशिका जो मैं लक्षित करने की कोशिश कर रहा हूं उससे पहले, लेकिन मुझे रूचि है दोनों समाधान

यहां एक रेगेक्स है जो कुछ समान करता है, लेकिन यह सुरक्षित नहीं है (जेएसलिंट के अनुसार), और इसलिए मैं इसे और अधिक कार्यात्मक के साथ बदलना नहीं चाहूंगा।

/^.*\/.*\/TARGETME\/page.html.*/ 

उत्तर

6

जैसा कि पहले ही दूसरों के द्वारा उत्तर दिया, .split() लेकिन यह सोचते हैं आप URL के ("पिछले से पहले भाग" लौटने के लिए इसका मतलब यह आपके मामले के लिए अच्छा है उदाहरण के लिए http://SomeAddress.whatever:portWhatever/dirA/DirB/TARGETME/page.html के लिए "TARGETME" वापस लौटें) तो आप निश्चित संख्या का उपयोग नहीं कर सकते हैं बल्कि सरणी के अंतिम भाग से पहले आइटम ले सकते हैं:

function BeforeLastPartofURL() { 
    var url = window.location.href; 
    var parts = url.split("/"); 
    var beforeLast = parts[parts.length - 2]; //keep in mind that since array starts with 0, last part is [length - 1] 
    alert(beforeLast); 
    return beforeLast; 
} 
+0

यह बहुत अच्छा है! यह एक और मजबूत समाधान करेगा। धन्यवाद! – streetlight

2

आप string.split() के साथ आसान यह कर सकते हैं ...

function getPath() { 
    var url = window.location; 
    var path = url.split("/")[4]; 
    alert(path); 
    return path; 
} 

मैं केवल इस विधि का सुझाव के बाद से आप कहते हैं कि आप हमेशा URL का स्वरूप पता चल जाएगा।

+1

यह एक अच्छा समाधान है! हालांकि, जैसा कि आपने स्वीकार किया है, यह हमेशा यूआरएल पर निर्भर है, इसलिए यह मेरे दायरे तक ही सीमित है। बहुत छोटा और संक्षिप्त अब! – streetlight

1
function lastPartofURL() { 
    // Finding Url of Last Page, to hide Error Login Information 
    var url = window.location; 
    var arr = url.split('/'); 

    alert(arr[4]); 
} 

देखें here

1

प्रयास करें इस

function lastPartofURL() { 
    // Finding Url of Last Page, to hide Error Login Information 
    var url = window.location; 
    var sIndex = url.lastIndexOf('/'); 
    var dIndex = url.lastIndexOf('.', sIndex); 
    if (dotIndex == -1) 
    { 
     filename = url.substring(sIndex + 1); 
    } 
    else 
    { 
     filename = url.substring(sIndex + 1, dIndex); 
    } 

    alert(filename); 
} 
संबंधित मुद्दे