Rumah >hujung hadapan web >tutorial js >Melaksanakan kaedah String.startsWith dan endsWith dalam petua Javascript_javascript

Melaksanakan kaedah String.startsWith dan endsWith dalam petua Javascript_javascript

WBOY
WBOYasal
2016-05-16 15:56:201605semak imbas

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

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;
 };
}

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;
 };
}

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.

Kenyataan:
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