Contoh dalam artikel ini menerangkan cara js menentukan sama ada rentetan mengandungi subrentetan. Kongsikan dengan semua orang untuk rujukan anda. Butirannya adalah seperti berikut:
Dalam pembangunan bahagian hadapan harian kami, kami sering menghadapi masalah untuk menentukan sama ada rentetan mengandungi subrentetan tertentu Di sini kami akan meneroka beberapa kaedah untuk menyelesaikan keperluan ini dan menggunakannya dengan betul. Sebaik-baiknya, apa yang kami cari ialah kaedah yang sepadan dengan tujuan kami (jika x mengandungi y) dan mengembalikan benar atau salah.
1. String.prototype.indexOf dan String.prototype.lastIndexOf
Dua kaedah ini mungkin yang paling mudah untuk kita fikirkan Jika ia mengandungi subrentetan, ia akan mengembalikan indeks yang lebih besar daripada atau sama dengan 0, jika tidak, ia akan mengembalikan -1, yang tidak memenuhi keadaan ideal kita.
var str = "Nama blog saya Benjamin-Focus on front-end pembangunan dan pengalaman pengguna",
substr = "Benjamin";
function isContains(str, substr) {
Kembalikan str.indexOf(substr) >= 0;
}
//benar
console.log(isContains(str, substr));
2. String.prototype.search
Kami memikirkan kaedah String.prototype.search Memandangkan parameter kaedah carian ialah ungkapan biasa, ia adalah sama dengan indexOf.
var str = "Nama blog saya Benjamin-Focus on front-end pembangunan dan pengalaman pengguna",
substr = "Benjamin";
function isContains(str, substr) {
Kembalikan RegExp(substr) baharu.test(str);
}
//benar
console.log(isContains(str, substr));
Kaedah ini kelihatan lebih baik daripada kaedah indexOf. Kaedah ini secara langsung mengembalikan benar atau salah Pada masa yang sama, ujian nama kaedah lebih semantik daripada indexOf.
3. String.prototype.contains
var str = "Nama blog saya Benjamin-Focus on pembangunan bahagian hadapan dan Pengalaman pengguna",
substr = "Benjamin";
function isContains(str, substr) {
Kembalikan str.contains(substr);
}
//benar
console.log(isContains(str, substr));
Kaedah ini pada masa ini hanya disokong oleh Firefox dan masih dalam draf ECMAScript 6. Kaedah ini memenuhi keadaan ideal yang dinyatakan di atas. Sila
klik di sini untuk butiran. Jika anda ingin menggunakan kaedah mengandungi, anda boleh merujuk kepada string.js perpustakaan pihak ketiga Klik di sini untuk memuat turun string.js
daripada tapak ini. Pelaksanaan kod sumber:
mengandungi: fungsi(ss) {
Kembalikan this.s.indexOf(ss) >= 0;
},
Kaedah lain perlu ditambah. . .
Sudah tentu, mengenai isu prestasi, kaedah mana yang lebih pantas masih perlu diuji. Rakan-rakan yang berminat mungkin ingin mengujinya sendiri.
Saya harap artikel ini akan membantu reka bentuk pengaturcaraan JavaScript semua orang.