2016-05-31 15 views

Antwort

9

Methode endsWith() nicht in IE unterstützt. Überprüfen Sie browser compatibility here.

können Sie polyfill Option aus MDN documentation genommen verwenden:

if (!String.prototype.endsWith) { 
    String.prototype.endsWith = function(searchString, position) { 
     var subjectString = this.toString(); 
     if (typeof position !== 'number' || !isFinite(position) 
      || Math.floor(position) !== position || position > subjectString.length) { 
     position = subjectString.length; 
     } 
     position -= searchString.length; 
     var lastIndex = subjectString.indexOf(searchString, position); 
     return lastIndex !== -1 && lastIndex === position; 
    }; 
} 
+0

Es hilft zu wissen, dass dieses Skript überall platziert werden können. Idealerweise wird es geladen, während die Seite geladen wird, so dass es für alle anderen Funktionen verfügbar gemacht wird. –

+0

Hier finden Sie die vereinfachte Antwort https://stackoverflow.com/questions/37544376/javascript-endswith-is-not-working-in-iev10 # answer-37545037 –

4

ich die einfachste Antwort gefunden,

Alles, was Sie tun müssen, ist der Prototyp

if (!String.prototype.endsWith) { 
    String.prototype.endsWith = function(suffix) { 
    return this.indexOf(suffix, this.length - suffix.length) !== -1; 
    }; 
} 
1

Es ist allgemein zu definieren, schlechte Übung, um den Prototyp eines nativen JavaScript-Objekts zu erweitern. Sehen Sie hier - Why is extending native objects a bad practice?

Sie eine einfache Prüfung wie diese verwenden können, die Cross-Browser funktioniert:

var isValid = (string1.lastIndexOf(string2) == (string1.length - string2.length))