Kami akan membangunkan beberapa contoh, dan menyebutkan polyfills yang tersedia untuk mereka. Ingatlah bahawa jika anda ingin mengasah mereka semua menggunakan perpustakaan tunggal, anda boleh menggunakan ES6-shim oleh Paul Miller.
Takeaways Key
<span>if (typeof String.prototype.startsWith !== 'function') { </span> <span>String.prototype.startsWith = function (str){ </span> <span>return this.indexOf(str) === 0; </span> <span>}; </span><span>} </span>
<span>if (typeof String.prototype.startsWith !== 'function') { </span> <span>String.prototype.startsWith = function (str){ </span> <span>return this.substring(0, str.length) === str; </span> <span>}; </span><span>} </span>
<span>String.prototype.startsWith(searchString[, position]); </span>
Penggunaan contoh kaedah ini ditunjukkan di bawah:
<span>if (typeof String.prototype.startsWith !== 'function') { </span> <span>String.prototype.startsWith = function (str){ </span> <span>return this.indexOf(str) === 0; </span> <span>}; </span><span>} </span>
demo langsung kod terdahulu ditunjukkan di bawah dan juga boleh didapati di JSBin.
Kaedah ini disokong dalam nod dan semua pelayar moden, kecuali Internet Explorer. Jika anda perlu menyokong penyemak imbas yang lebih tua, polyfill untuk kaedah ini boleh didapati di halaman kaedah di MDN. Polyfill lain juga telah dibangunkan oleh Mathias Bynens.
Selain string.prototype.startSwith (), EcMascript 6 memperkenalkan kaedah String.Prototype.endSwith (). Ia mengesahkan bahawa rentetan tamat dengan substring yang diberikan. Sintaks kaedah ini, yang ditunjukkan di bawah, sangat mirip dengan string.prototype.StartSwith ():
<span>if (typeof String.prototype.startsWith !== 'function') { </span> <span>String.prototype.startsWith = function (str){ </span> <span>return this.substring(0, str.length) === str; </span> <span>}; </span><span>} </span>
seperti yang anda lihat, kaedah ini menerima parameter yang sama seperti String.Prototype.StartSwith (), dan juga mengembalikan jenis nilai yang sama.
Perbezaannya ialah parameter kedudukan membolehkan anda mencari dalam rentetan seolah -olah rentetan hanya panjang ini. Dalam erti kata lain, jika kita mempunyai rumah rentetan dan kita memanggil kaedah dengan 'house'.endswith (' us ', 4), kita mendapat benar, kerana ia seperti kita sebenarnya mempunyai rentetan rumah (perhatikan "e" yang hilang) .
Penggunaan contoh kaedah ini ditunjukkan di bawah:
<span>String.prototype.startsWith(searchString[, position]); </span>
Demo langsung coretan sebelumnya ditunjukkan di bawah dan juga boleh didapati di JSBin.
Kaedah ini disokong dalam nod dan semua pelayar moden, kecuali Internet Explorer. Jika anda perlu menyokong penyemak imbas yang lebih tua, polyfill untuk kaedah ini boleh didapati di halaman kaedah di MDN. Polyfill lain telah dibangunkan oleh Mathias Bynens.
Semasa kita bercakap tentang mengesahkan jika satu rentetan terkandung dalam yang lain, izinkan saya memperkenalkan anda ke kaedah String.Prototype.includes (). Ia kembali benar jika rentetan terkandung dalam yang lain, tidak kira di mana, dan sebaliknya.
sintaksnya ditunjukkan di bawah:
<span>const str = 'hello!'; </span><span>let result = str.startsWith('he'); </span> <span>// prints "true" </span><span>console.log(result); </span> <span>// verify starting from the third character </span>result <span>= str.startsWith('ll', 2); </span> <span>// prints "true" </span><span>console.log(result); </span>
Makna parameter adalah sama seperti untuk string.prototype.startswith (), jadi saya tidak akan mengulanginya. Penggunaan contoh kaedah ini ditunjukkan di bawah:
<span>String.prototype.endsWith(searchString[, position]); </span>
anda boleh mencari demo langsung di bawah dan juga seperti di JSBin.
string.prototype.includes () disokong dalam nod dan semua pelayar moden, kecuali Internet Explorer. Jika anda perlu menyokong pelayar yang lebih tua, seperti kaedah lain yang dibincangkan dalam tutorial ini, anda boleh mencari polyfill yang disediakan oleh Mathias Bynens (lelaki ini tahu bagaimana untuk melakukan tugasnya!) Dan satu lagi di rangkaian pemaju Mozilla.
NOTA: Sehingga versi 48, Firefox menggunakan nama yang tidak standard. string.prototype.repeat ()
<span>if (typeof String.prototype.startsWith !== 'function') { </span> <span>String.prototype.startsWith = function (str){ </span> <span>return this.indexOf(str) === 0; </span> <span>}; </span><span>} </span>
Parameter Times menunjukkan bilangan kali rentetan mesti diulang. Jika anda lulus sifar, anda akan mendapat rentetan kosong, sementara jika anda lulus nombor negatif atau tak terhingga, anda akan mendapat rangeError.
Penggunaan contoh kaedah ini ditunjukkan di bawah:
<span>if (typeof String.prototype.startsWith !== 'function') { </span> <span>String.prototype.startsWith = function (str){ </span> <span>return this.substring(0, str.length) === str; </span> <span>}; </span><span>} </span>
demo langsung kod sebelumnya ditunjukkan di bawah dan juga boleh didapati di JSBin.
Kaedah ini disokong dalam nod dan semua pelayar moden, kecuali Internet Explorer. Jika anda perlu menyokong penyemak imbas yang lebih tua, dua polyfills tersedia untuk kaedah ini: yang dibangunkan oleh Mathias Bynens dan satu lagi di Rangkaian Pemaju Mozilla.
Kaedah terakhir yang saya ingin tutupi dalam tutorial ini adalah string.raw (). Ia ditakrifkan sebagai fungsi tag rentetan template
. Ia menarik, kerana ia adalah pengganti untuk perpustakaan templat, walaupun saya tidak 100% pasti ia boleh skala cukup untuk menggantikan perpustakaan tersebut. Walau bagaimanapun, idea itu pada dasarnya sama seperti yang akan kita lihat tidak lama lagi. Apa yang dilakukannya ialah menyusun rentetan dan menggantikan setiap pemegang tempat dengan nilai yang disediakan.
sintaksinya adalah yang berikut (perhatikan backticks):
<span>String.prototype.startsWith(searchString[, position]); </span>
parameter templatestring mewakili rentetan yang mengandungi templat untuk diproses.
untuk lebih memahami konsep ini, mari kita lihat contoh konkrit:
<span>const str = 'hello!'; </span><span>let result = str.startsWith('he'); </span> <span>// prints "true" </span><span>console.log(result); </span> <span>// verify starting from the third character </span>result <span>= str.startsWith('ll', 2); </span> <span>// prints "true" </span><span>console.log(result); </span>
demo langsung kod sebelumnya ditunjukkan di bawah dan juga boleh didapati di JSBin.
Kaedah ini disokong dalam Node dan semua pelayar moden, kecuali Opera dan Internet Explorer. Sekiranya anda perlu menyokong penyemak imbas yang lebih tua, anda boleh menggunakan polyfill, seperti yang terdapat pada npm.
Dalam tutorial ini, anda telah belajar tentang beberapa kaedah baru yang diperkenalkan dalam ECMAScript 6 yang bekerja dengan rentetan. Kaedah lain yang tidak kami tutup adalah string.FromCodePoint (), string.prototype.codepointat (), dan string.prototype.normalize (). Saya harap anda menikmati artikel ini dan anda akan terus mengikuti saluran kami untuk mengetahui lebih lanjut mengenai ECMAScript 6.
Kaedah StartSwith () dalam ES6 digunakan untuk menentukan sama ada rentetan bermula dengan aksara rentetan yang ditentukan. Ia kembali benar jika rentetan bermula dengan rentetan yang ditentukan dan sebaliknya. Sintaks adalah str.startswith (carianString [, kedudukan]). Carian carian adalah watak -watak yang akan dicari pada permulaan STR. Kedudukan, yang pilihan, adalah kedudukan dalam rentetan di mana carian harus bermula. Sekiranya ditinggalkan, carian bermula pada permulaan rentet dengan watak -watak rentetan yang ditentukan. Ia kembali benar jika rentetan berakhir dengan rentetan yang ditentukan dan sebaliknya. Sintaks adalah str.endswith (carianstring [, panjang]). Carian carian adalah watak -watak yang akan dicari pada akhir STR. Panjang, yang pilihan, adalah panjang rentetan yang akan dicari. Jika ditinggalkan, panjang rentetan digunakan. Pelayar yang paling moden menyokong kaedah rentetan ES6. Walau bagaimanapun, untuk penyemak imbas yang lebih tua yang tidak menyokong ES6, anda mungkin perlu menggunakan transpiler seperti Babel untuk menukar kod ES6 ke ES5, yang lebih banyak disokong. 🎜> Bolehkah saya menggunakan kaedah rentetan ES6 dalam semua pelayar?
Atas ialah kandungan terperinci Bersedia untuk ECMAScript 6: Kaedah String Baru - String.Prototype.*. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!