Melaksanakan kaedah String.startsWith dan endsWith dalam petua Javascript_javascript

WBOY
Lepaskan: 2016-05-16 15:56:20
asal
1555 orang telah melayarinya

Apabila beroperasi pada jenis String, startsWith(anotherString) dan endsWith(anotherString) adalah kaedah yang sangat berguna. Antaranya, startsWith menentukan sama ada rentetan semasa bermula dengan anotherString, dan endsWith menentukan sama ada rentetan itu berakhir. Contoh:

"abcd".startsWith("ab"); // true
"abcd".startsWith("bc"); // false
"abcd".endsWith("cd");  // true
"abcd".endsWith("e");  // false
"a".startsWith("a");   // true
"a".endsWith("a");    // true
Salin selepas log masuk

Malangnya, Javascript tidak disertakan dengan dua kaedah ini, jadi anda hanya boleh menulisnya sendiri jika perlu. Sudah tentu ia tidak sukar untuk menulis.

if (typeof String.prototype.startsWith != 'function') {
 String.prototype.startsWith = function (prefix){
  return this.slice(0, prefix.length) === prefix;
 };
}
Salin selepas log masuk

String.slice() adalah serupa dengan String.substring() kerana kedua-duanya memperoleh substring, tetapi sesetengah ulasan mengatakan slice itu lebih cekap. Sebab mengapa indexOf() tidak digunakan di sini ialah indexOf akan mengimbas keseluruhan rentetan Jika rentetan itu sangat panjang, kecekapan indexOf akan menjadi sangat lemah.

if (typeof String.prototype.endsWith != 'function') {
 String.prototype.endsWith = function(suffix) {
  return this.indexOf(suffix, this.length - suffix.length) !== -1;
 };
}
Salin selepas log masuk

Tidak seperti startsWith, indexOf boleh digunakan dalam endsWith. Sebabnya ialah ia hanya mengimbas rentetan terakhir, dan kelebihan ke atas slice ialah ia tidak perlu menyalin rentetan, hanya mengimbasnya terus, jadi ia lebih cekap.

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan