Je sais que c'est un an de question... mais j'ai besoin de ce trop et j'en ai besoin pour le travail de la croix-navigateur... en combinant tous les réponses et les commentaires et à le simplifier un peu:
String.prototype.endsWith = function(suffix) {
return this.indexOf(suffix, this.length - suffix.length) !== -1;
};
- Ne pas créer une sous-chaîne
- Utilise natif
indexOf
fonction pour les résultats les plus rapides
- Passez inutile comparaisons à l'aide de la deuxième paramètre de
indexOf
à venir la sauter
- Fonctionne dans Internet Explorer
- PAS de Regex complications
Aussi, si vous n'aimez pas la farce des choses dans natif de données de la structure de prototypes, ici est une version autonome:
function endsWith(str, suffix) {
return str.indexOf(suffix, str.length - suffix.length) !== -1;
}
EDIT: Comme le fait remarquer @hamish dans les commentaires, si vous voulez err sur le côté sécuritaire et vérifier si une mise en œuvre ont déjà été fournis, vous pouvez juste ajoute un typeof
vérifier:
if (typeof String.prototype.endsWith !== 'function') {
String.prototype.endsWith = function(suffix) {
return this.indexOf(suffix, this.length - suffix.length) !== -1;
};
}