Этот код не работает в Internet Explorer. Любая альтернатива?
"abcde".includes("cd")
javascript
Карлосс
источник
источник
Ответы:
String.prototype.includes
, как вы пишете, не поддерживается в Internet Explorer (или Opera).Вместо этого вы можете использовать
String.prototype.indexOf
.#indexOf
возвращает индекс первого символа подстроки, если он находится в строке, в противном случае возвращает-1
. (Во многом как эквивалент Array)В MDN есть полифилл для
includes
использованияindexOf
: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/includes#PolyfillРЕДАКТИРОВАТЬ: Opera поддерживает
includes
начиная с версии 28 .РЕДАКТИРОВАТЬ 2: Текущие версии Edge поддерживают этот метод. (по состоянию на 2019 год)
источник
Boolean
, мы можем(myString.indexOf('string') > -1) // to get a boolean true or false
Или просто поместите это в файл Javascript и хорошего дня :)
источник
for...in
, он будет повторяться,String.prototype.includes
если он определен таким образом.return this.indexOf(str) !== -1;
include () не поддерживается большинством браузеров. Ваши варианты - использовать
-polyfill из MDN https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/includes
или использовать
-индекс()
Что дает вам n = 2
Это широко поддерживается.
источник
for...in
! , он будет повторяться,String.prototype.includes
если вы определите его так.Проблема:
Попробуйте запустить ниже (без решения) из Internet Explorer и посмотрите результат.
Решение:
Теперь запустите ниже решение и проверьте результат
источник
Этот может быть лучше и короче:
источник
У меня была такая же проблема при работе в Angular 5. Чтобы он работал напрямую, без написания полифилла самостоятельно, просто добавьте следующую строку в файл polyfills.ts:
Также
tsconfig.json
может быть актуален раздел lib:источник
Для реакции:
Решение проблемы для - includes (), find () и т. Д.
источник
Если вы хотите продолжать использовать
Array.prototype.include()
в javascript, вы можете использовать этот скрипт: github-script-ie-include, который автоматически преобразует include () в функцию match (), если обнаруживает IE.Другой вариант - всегда использовать
string.match(Regex(expression))
источник
Меня устраивает:
источник
Вы можете сделать то же самое с !! и ~ операторы
вот объяснение двух операторов (!! и ~)
Что !! (не нет) оператор в JavaScript?
https://www.joezimjs.com/javascript/great-mystery-of-the-tilde/
источник