কমপক্ষে তিনটি উপায়:
একটি নিয়মিত প্রকাশ:
var result = /[^/]*$/.exec("foo/bar/test.html")[0];
... যা বলে যে " [^/]*
স্ট্রিং ( $
) এর শেষে " স্ল্যাশযুক্ত অক্ষরগুলির সিরিজ ধরুন " ( )। তারপরে এটি ( [0]
) এর সাথে সূচক করে ফেরত ম্যাচ অবজেক্ট থেকে ম্যাচ করা অক্ষরগুলি ধরে ফেলে ; একটি ম্যাচ অবজেক্টে, প্রথম এন্ট্রি পুরো ম্যাচিং স্ট্রিং। ক্যাপচার গ্রুপগুলির দরকার নেই।
সরাসরি উদাহরণ
ব্যবহার lastIndexOf
এবং substring
:
var str = "foo/bar/test.html";
var n = str.lastIndexOf('/');
var result = str.substring(n + 1);
lastIndexOf
এটি যা দেখে মনে হচ্ছে তা করে: এটি একটি স্ট্রিংয়ে একটি অক্ষরের সর্বশেষ উপস্থিতির সূচকটি (ভাল, স্ট্রিং) সন্ধান করে, যদি না পাওয়া যায় তবে ফিরে আসে -1। দশজনের মধ্যে নয় বার আপনি সম্ভবত সেই রিটার্নের মানটি পরীক্ষা করতে চান ( if (n !== -1)
), তবে উপরোক্ত যেহেতু আমরা এতে 1 যুক্ত করছি এবং সাবস্ট্রিং বলছি, আমরা শেষ করবো str.substring(0)
যা কেবল স্ট্রিংটি দেয় returns
ব্যবহার Array#split
সুধীর এবং টম ওয়াল্টার্স এখানে এবং এখানে এটি কভার করেছেন তবে কেবল সম্পূর্ণতার জন্য:
var parts = "foo/bar/test.html".split("/");
var result = parts[parts.length - 1]; // Or parts.pop();
split
প্রদত্ত ডিলিমিটার ব্যবহার করে একটি স্ট্রিং বিভক্ত করে একটি অ্যারে ফিরিয়ে দেয়।
lastIndexOf
/ substring
সমাধান সম্ভবত সবচেয়ে বেশি কার্যকরী (যদিও একজন সবসময় জাভাস্ক্রিপ্ট এবং কর্মক্ষমতা সম্পর্কে কিছু বলার অপেক্ষা রাখে না, যেহেতু ইঞ্জিন একে অপরের থেকে তাই আমূল পরিবর্তন হওয়ার সম্ভাবনা রয়েছে সতর্কতা অবলম্বন করা আবশ্যক আছে), কিন্তু যদি না আপনি একটি লুপ সময়ের এই হাজার হাজার করছেন, এটা doesn 'ব্যাপার না এবং আমি কোডের স্পষ্টতার জন্য চেষ্টা করব।