2013-02-08 13 views
9

में स्ट्रिंग समाप्त हो गया है, यदि मेरे पास एक चर में लोड स्ट्रिंग है, तो स्ट्रिंग को समाप्त करने के लिए "/" स्ट्रिंग समाप्त होने पर यह निर्धारित करने के लिए उचित विधि क्या है?जावास्क्रिप्ट को यह पता लगाने के लिए कि स्ट्रिंग को फॉरवर्ड स्लैश

var myString = jQuery("#myAnchorElement").attr("href"); 
+0

jQuery ऐसा नहीं कर सकते लिख सकते हैं। हालांकि, जावास्क्रिप्ट कर सकते हैं। –

+0

संभावित डुप्लिकेट [स्ट्रिंग के अंतिम अक्षर को कैसे प्राप्त करें?] (Http://stackoverflow.com/questions/3884632/how-to-get-the-last-character-of-a-string) –

उत्तर

12

एक regex काम करता है, लेकिन अगर आपको लगता है कि पूरे गुप्त वाक्य रचना से बचना चाहते हैं, यहाँ कुछ है कि काम करना चाहिए है: javascript/jquery add trailing slash to url (if not present)

var lastChar = url.substr(-1); // Selects the last character 
if (lastChar !== '/') {   // If the last character is not a slash 
    ... 
} 
3

उपयोग regex और कार्य करें:

var endsInForwardSlash = myString[myString.length - 1] === "/"; 

संपादित करें:

myString.match(/\/$/) 
1

एक सरल समाधान सिर्फ के माध्यम से अंतिम वर्ण की जाँच करने के होगा ध्यान रखें, आप जांच करने की आवश्यकता होगी कि अपवाद फेंकने से पहले स्ट्रिंग शून्य नहीं है।

1

आप सबस्ट्रिंग और lastIndexOf उपयोग कर सकते हैं:

var value = url.substring(url.lastIndexOf('/') + 1); 
0

आप डॉन ' इसके लिए JQuery की आवश्यकता नहीं है।

function endsWith(s,c){ 
    if(typeof s === "undefined") return false; 
    if(typeof c === "undefined") return false; 

    if(c.length === 0) return true; 
    if(s.length === 0) return false; 
    return (s.slice(-1) === c); 
} 

endsWith('test','/'); //false 
endsWith('test',''); // true 
endsWith('test/','/'); //true 

तुम भी एक प्रोटोटाइप

String.prototype.endsWith = function(pattern) { 
    if(typeof pattern === "undefined") return false; 
    if(pattern.length === 0) return true; 
    if(this.length === 0) return false; 
    return (this.slice(-1) === pattern); 
}; 

"test/".endsWith('/'); //true 
संबंधित मुद्दे