अद्यतन (24 नवंबर, 2015):
यह उत्तर मूल रूप से वर्ष 2010 (SIX वर्ष पूर्व) में पोस्ट किया गया है, इसलिए कृपया इन व्यावहारिक टिप्पणियों पर ध्यान दें:
मूल ANSWER:
मुझे पता है कि यह एक वर्ष पुराना प्रश्न है ... लेकिन मुझे इसकी भी आवश्यकता है और मुझे इसे क्रॉस-ब्राउज़र पर काम करने की आवश्यकता है ... सभी के उत्तर और टिप्पणियों को संयोजित करना और इसे थोड़ा सरल करना:
String.prototype.endsWith = function(suffix) {
return this.indexOf(suffix, this.length - suffix.length) !== -1;
};
- एक सबस्ट्रिंग नहीं बनाता है
indexOf
सबसे तेज़ परिणामों के लिए मूल फ़ंक्शन का उपयोग करता है
indexOf
आगे निकलने के लिए दूसरे पैरामीटर का उपयोग करके अनावश्यक तुलना छोड़ें
- इंटरनेट एक्सप्लोरर में काम करता है
- सं Regex जटिलताओं
इसके अलावा, अगर आपको देशी डेटा संरचना के प्रोटोटाइप में चीजें भरना पसंद नहीं है, तो यहां एक स्टैंडअलोन संस्करण है:
function endsWith(str, suffix) {
return str.indexOf(suffix, str.length - suffix.length) !== -1;
}
संपादित करें: जैसा कि @hamish द्वारा टिप्पणियों में उल्लेख किया गया है, यदि आप सुरक्षित पक्ष पर गलती करना चाहते हैं और जांचें कि क्या कार्यान्वयन पहले ही प्रदान किया जा चुका है, तो आप बस इस typeof
तरह एक चेक जोड़ सकते हैं :
if (typeof String.prototype.endsWith !== 'function') {
String.prototype.endsWith = function(suffix) {
return this.indexOf(suffix, this.length - suffix.length) !== -1;
};
}