2012-02-29 3 views
7

के साथ अंतिम भाग URL से मिलान करने के लिए मेरे पास कुछ यूआरएल हैं और मैं यूआरएल के अंतिम भाग को पकड़ना पसंद करता हूं।रीजिक्स जावास्क्रिप्ट

मेरे यूआरएल

http://www.my-site.dch/wp-content/uploads/2012/02/Tulips.jpg 
http://www.my-site.dch/wp-content/uploads/2012/02/Tulips-150x200.jpg 
http://www.my-site.dch/wp-content/uploads/2012/02/Tulips-500x350.jpg 

के रूप में कर रहे हैं और क्या मैं पकड़ने के लिए चाहते /Tulips.......jpg

मुझे लगता है कि कोशिश है, लेकिन कोई भाग्य के साथ

\/.*(-\d+x\d+)\.(jp(e)?g|png|gif) 

कोई बेहतर विचार?

+1

आप ULR हेरफेर का एक बहुत करने के लिए है और आप अपने कोड पाना चाहते हैं और अधिक पठनीय होने के लिए है, मैं उत्कृष्ट सलाह देते हैं uri.js http://medialize.github.com/URI.js –

उत्तर

24

lastIndexOf विधि पर एक नज़र डालें:

var index = url.lastIndexOf("/"); 
var fileName = url.substr(index) 
+0

यह सब ठीक है तो ऊपर। – shift66

+0

हेड अप, यदि यूआरएल पैरामीटर है तो यह समाधान काम नहीं करता है। यानी: www.something.com/image.jpg?size=100x100 (अपवित्र क्योंकि यह अभी भी इस प्रश्न के लिए एक अच्छा समाधान है) – tbraun

+0

एक अच्छी लाइब्रेरी के लिए http://stackoverflow.com/a/11664379/232175 देखें जो अधिक संभालता है जटिल यूआरआई (यूआरआई.जेएस)। – Matthias

1

.*/(.*) उपयोग इस पैटर्न और समूह 1.it मुझे लगता है कि काम करेंगे मिलता है।
.* एक लालची रेगेक्स है, इसलिए यह अंतिम स्लैश तक मेल खाएगा। उसके बाद समूह में 1 अंतिम अक्षर हो जाएगा (आप क्या जरूरत है)

+0

मुझे लगता है कि @ winSharp93 का जवाब सबसे अच्छा है। – shift66

8

निम्नलिखित नियमित अभिव्यक्ति काम करेगा: इस Regex

/[^\/]+$/ 
+0

यह क्वेरी स्ट्रिंग को भी उठाता है। – Brad

3

का उपयोग करें: -

^((http[s]?|ftp):\/)?\/?([^:\/\s]+)((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(.*)?(#[\w\-]+)?$ 

$6 का उपयोग कर फ़ाइल नाम प्राप्त करें

1

यदि आप सुनिश्चित हैं कि सभी छवियां हैं jpg:

/.\/\S+\.jpg/ 

अन्यथा, अधिक generale:

/.\/\S+\.\w{2,3}/ 

यही कारण है:

. any char 
\/ the slash before the file name 
\S+ any non blank char to match the file name (at least one) 
\. the file extension separator 
jpg or \w{3,4} the file extension 
संबंधित मुद्दे