ОНОВЛЕННЯ (24 листопада 2015 р.):
Ця відповідь спочатку розміщена у 2010 році (SIX років тому), тому, будь ласка, врахуйте ці проникливі коментарі:
ОРИГІНАЛЬНИЙ ВІДПОВІДЬ:
Я знаю, що це питання за рік ... але мені це теж потрібно, і мені потрібно, щоб він працював крос-браузером, так що поєднуючи відповіді та коментарі кожного та трохи спростивши його:
String.prototype.endsWith = function(suffix) {
return this.indexOf(suffix, this.length - suffix.length) !== -1;
};
- Не створює підрядку
- Використовує натиснуту
indexOf
функцію для швидких результатів
- Пропустіть непотрібні порівняння, використовуючи другий параметр,
indexOf
щоб пропустити вперед
- Працює в Internet Explorer
- НЕ ускладнень Регексу
Крім того, якщо вам не подобається набивання речей у прототипи нативного структури даних, ось окрема версія:
function endsWith(str, suffix) {
return str.indexOf(suffix, str.length - suffix.length) !== -1;
}
EDIT: Як зазначає @hamish у коментарях, якщо ви хочете помилитися з безпечної сторони і перевірити, чи реалізація вже надана, ви можете просто додати typeof
чек так:
if (typeof String.prototype.endsWith !== 'function') {
String.prototype.endsWith = function(suffix) {
return this.indexOf(suffix, this.length - suffix.length) !== -1;
};
}