Biasanya saya mengharapkan suatu String.contains()
metode, tetapi sepertinya tidak ada satu pun.
Apa cara yang masuk akal untuk memeriksa ini?
javascript
string
substring
string-matching
Peter O.
sumber
sumber
indexOf()
...string.toUpperCase().includes(substring.toUpperCase())
/regexpattern/i.test(str)
-> i flag berarti kepekaan caseAda
String.prototype.includes
dalam ES6 :Perhatikan bahwa ini tidak berfungsi di Internet Explorer atau browser lama lainnya tanpa dukungan ES6 atau tidak lengkap. Untuk membuatnya bekerja di browser lama, Anda mungkin ingin menggunakan seperti transpiler Babel , perpustakaan shim seperti es6-shim , atau polyfill ini dari MDN :
sumber
"potato".includes("to");
dan jalankan melalui Babel."boot".includes("T")
adalahfalse
Alternatif lain adalah KMP (Knuth – Morris – Pratt).
Algoritma KMP mencari panjang- substring dalam string panjang- n dalam O kasus terburuk ( n + m ), dibandingkan dengan kasus terburuk O ( n ⋅ m ) untuk algoritma naif, sehingga menggunakan KMP dapat masuk akal jika Anda peduli dengan kompleksitas waktu terburuk.
Berikut ini adalah implementasi JavaScript oleh Project Nayuki, diambil dari https://www.nayuki.io/res/knuth-morris-pratt-string-matching/kmp-string-matcher.js :
sumber