Kode ini tidak berfungsi di penjelajah internet. Ada alternatif lain?
"abcde".includes("cd")
javascript
Carlosss
sumber
sumber
Jawaban:
String.prototype.includes
adalah, saat Anda menulis, tidak didukung di Internet Explorer (atau Opera).Sebagai gantinya Anda bisa menggunakan
String.prototype.indexOf
.#indexOf
mengembalikan indeks dari karakter pertama dari substring jika ada dalam string, jika tidak maka akan dikembalikan-1
. (Sama seperti Array yang setara)MDN memiliki polyfill untuk
includes
digunakanindexOf
: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/includes#PolyfillEDIT: Opera mendukung
includes
mulai versi 28 .EDIT 2: Versi Edge saat ini mendukung metode ini. (per 2019)
sumber
Boolean
, kita bisa(myString.indexOf('string') > -1) // to get a boolean true or false
Atau taruh saja ini dalam file Javascript dan semoga harimu menyenangkan :)
sumber
for...in
, itu akan mengulangiString.prototype.includes
jika didefinisikan seperti ini.return this.indexOf(str) !== -1;
include () tidak didukung oleh sebagian besar browser. Pilihan Anda bisa digunakan
-polyfill dari MDN https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/includes
atau untuk digunakan
-Indeks()
Yang memberi Anda n = 2
Ini didukung secara luas.
sumber
for...in
! , ini akan berulangString.prototype.includes
jika Anda mendefinisikannya seperti itu.Masalah:
Coba jalankan di bawah ini (tanpa solusi) dari Internet Explorer dan lihat hasilnya.
Larutan:
Sekarang jalankan solusi di bawah ini dan periksa hasilnya
sumber
Yang ini mungkin lebih baik dan lebih pendek:
sumber
Saya mengalami masalah yang sama saat bekerja di Angular 5. Untuk membuatnya bekerja secara langsung tanpa menulis sendiri polyfill, cukup tambahkan baris berikut ke file polyfills.ts:
Juga,
tsconfig.json
bagian lib mungkin relevan:sumber
Untuk bereaksi:
Penyelesaian masalah untuk - termasuk (), find (), dan seterusnya ..
sumber
Jika Anda ingin tetap menggunakan
Array.prototype.include()
javascript, Anda dapat menggunakan skrip ini: github-script-ie-include Yang mengubah fungsi include () menjadi match () secara otomatis jika fungsi tersebut mendeteksi IE.Opsi lainnya adalah selalu menggunakan
string.match(Regex(expression))
sumber
Ini bekerja untuk saya:
sumber
Anda dapat melakukan hal yang sama dengan !! dan ~ operator
berikut penjelasan dari kedua operator tersebut (!! dan ~)
Apakah yang !! (bukan) operator di JavaScript?
https://www.joezimjs.com/javascript/great-mystery-of-the-tilde/
sumber