Kejadian rentetan Javascript. Sintaks pembolehubah rentetan. Sintaks rentetan alternatif

Sebagai "rangka kerja" semantik untuk penggunaan fungsi dan pembinaan untuk memproses rentetan, ia amat diminati untuk memprogramkan proses pemprosesan maklumat mengikut kandungan semantiknya. Pada lidah fungsi JavaScript operasi dengan rentetan boleh digabungkan ke dalam pembinaan semantik anda sendiri, memudahkan kod dan memformalkan bidang subjek tugasan.

DALAM versi klasik pemprosesan maklumat adalah terutamanya fungsi rentetan. Setiap fungsi dan konstruk bahasa mempunyai ciri tersendiri dalam sintaks dan semantik JavaScript. Kaedah untuk bekerja dengan rentetan di sini mempunyai gaya mereka sendiri, tetapi dalam penggunaan biasa ia hanyalah sintaks dalam semantik mudah: cari, ganti, sisipan, pengekstrakan, konotasi, tukar huruf...

Penerangan pembolehubah rentetan

Untuk mengisytiharkan rentetan, gunakan pembinaan var. Anda boleh segera menetapkan nilainya atau menjananya semasa pelaksanaan algoritma. Anda boleh menggunakan petikan tunggal atau berganda untuk rentetan. Jika ia mesti mengandungi tanda petikan, ia mesti dilepaskan dengan aksara "\".

Baris yang ditunjukkan memerlukan keluar dari petikan berganda dalaman. Begitu juga, petikan yang ditandakan dengan petikan tunggal adalah penting untuk kehadiran petikan tunggal di dalamnya.

DALAM dalam contoh ini rentetan "str_dbl" menyenaraikan aksara khas yang berguna yang boleh digunakan dalam rentetan. Dalam kes ini, watak "\" itu sendiri dilepaskan.

Rentetan sentiasa array

JavaScript boleh berfungsi dengan rentetan dalam pelbagai cara. Sintaks bahasa menyediakan banyak pilihan. Pertama sekali, seseorang tidak boleh lupa bahawa (dalam konteks huraian yang dibuat):

  • str_isV => "V";
  • str_chr => """;
  • str_dbl => "a".

Iaitu, aksara rentetan tersedia sebagai elemen tatasusunan, dengan setiap satu watak istimewa- ini adalah satu watak. Melarikan diri ialah elemen sintaks. Tiada "skrin" diletakkan pada baris sebenar.

Menggunakan fungsi charAt() mempunyai kesan yang sama:

  • str_isV.charAt(3) => "V";
  • str_chr.charAt(1) => """;
  • str_dbl.charAt(5) => “a”.

Pengaturcara boleh menggunakan sebarang pilihan.

Fungsi Rentetan Asas

Dalam JavaScript ia dilakukan sedikit berbeza daripada dalam bahasa lain. Nama pembolehubah (atau rentetan itu sendiri) diikuti dengan nama fungsi, dipisahkan oleh titik. Biasanya, fungsi rentetan dipanggil kaedah dalam gaya sintaks bahasa, tetapi perkataan pertama lebih biasa.

Kaedah rentetan yang paling penting (lebih tepat, sifat) ialah panjangnya.

  • var xStr = str_isV.length + "/" + str_chr.length + "/" + str_dbl.length.

Keputusan: 11/12/175 mengikut baris penerangan di atas.

Sepasang fungsi rentetan yang paling penting ialah membelah rentetan kepada tatasusunan elemen dan menggabungkan tatasusunan menjadi rentetan:

  • belah(s [, l]);
  • menyertai (s).

Dalam kes pertama, rentetan dipecahkan pada aksara pembatas "s" kepada tatasusunan elemen di mana bilangan elemen tidak melebihi nilai "l". Jika kuantiti tidak dinyatakan, keseluruhan baris rosak.

Dalam kes kedua, tatasusunan elemen digabungkan menjadi satu baris melalui pembatas yang diberikan.

Ciri yang ketara bagi pasangan ini: pemisahan boleh dilakukan menggunakan satu pemisah, dan penggabungan boleh dilakukan menggunakan pemisah yang lain. Dalam konteks ini, JavaScript boleh berfungsi dengan rentetan "di luar" sintaks bahasa.

Fungsi rentetan klasik

Fungsi pemprosesan rentetan biasa:

  • carian;
  • sampel;
  • penggantian;
  • transformasi.

Diwakili oleh kaedah: indexOf(), lastIndexOf(), toLowerCase(), toUpperCase(), concan(), charCodeAt() dan lain-lain.

Dalam JavaScript, bekerja dengan rentetan diwakili oleh pelbagai jenis fungsi, tetapi ia sama ada menduplikasi antara satu sama lain atau dibiarkan untuk algoritma dan keserasian lama.

Sebagai contoh, menggunakan kaedah concat() boleh diterima, tetapi lebih mudah untuk menulis:

  • str = str1 + str2 + str3;

Menggunakan fungsi charAt() juga masuk akal, tetapi menggunakan charCodeAt() mempunyai kesan sebenar kepentingan praktikal. Begitu juga, untuk JavaScript, pemisah baris mempunyai makna istimewa: dalam konteks paparan, sebagai contoh, dalam mesej amaran(), ia adalah "\n", dalam binaan penjanaan kandungan halaman ia adalah "
" Dalam kes pertama ia hanyalah watak, dan dalam kes kedua ia adalah rentetan aksara.

Rentetan dan Ungkapan Biasa

Dalam JavaScript, bekerja dengan rentetan termasuk mekanisme ekspresi biasa. Ini membolehkan carian kompleks, pengambilan dan penukaran rentetan dilakukan dalam penyemak imbas tanpa menghubungi pelayan.

Kaedah perlawanan mendapati, dan menggantikan menggantikan padanan yang ditemui dengan nilai yang dikehendaki. Ungkapan biasa dilaksanakan dalam JavaScript pada tahap yang tinggi, sememangnya kompleks, dan disebabkan kekhususan aplikasinya, ia memindahkan pusat graviti dari pelayan ke penyemak imbas pelanggan.

Apabila menggunakan kaedah padan, cari Dan menggantikan bukan sahaja perlu diberi perhatian yang sewajarnya kepada ujian merentasi keseluruhan spektrum nilai yang boleh diterima parameter awal dan rentetan carian, tetapi juga menilai beban pada penyemak imbas.

Contoh ungkapan biasa

Skop ungkapan biasa untuk memproses rentetan adalah luas, tetapi memerlukan penjagaan dan perhatian yang tinggi daripada pembangun. Pertama sekali, ungkapan biasa digunakan semasa menguji input pengguna dalam medan borang.

Berikut ialah fungsi yang menyemak sama ada input mengandungi integer (schInt) atau nombor nyata (schReal). Contoh berikut menunjukkan betapa cekapnya memproses rentetan dengan menyemaknya untuk aksara yang sah sahaja: schText - teks sahaja, schMail - alamat yang betul E-mel.

Adalah sangat penting untuk diingat bahawa dalam JavaScript, aksara dan rentetan memerlukan peningkatan perhatian ke tempat setempat, terutamanya apabila anda perlu bekerja dengan Cyrillic. Dalam banyak kes, adalah dinasihatkan untuk menentukan kod aksara sebenar dan bukannya maksudnya. Ini terpakai terutamanya kepada surat Rusia.

Perlu diingatkan terutamanya bahawa ia tidak semestinya perlu untuk menyelesaikan tugas seperti yang ditetapkan. Khususnya, berkenaan dengan menyemak integer dan nombor nyata: anda boleh mendapatkannya bukan dengan kaedah rentetan klasik, tetapi reka bentuk konvensional sintaks.

Rentetan Berorientasikan Objek

Dalam JavaScript, bekerja dengan rentetan diwakili oleh pelbagai fungsi. Tetapi ini bukan alasan yang baik untuk menggunakannya dalam bentuk asalnya. Sintaks dan kualiti fungsi adalah sempurna, tetapi ia adalah penyelesaian satu saiz untuk semua.

Sebarang permohonan fungsi rentetan melibatkan pemprosesan maksud sebenar, yang ditentukan oleh data, skop aplikasi dan tujuan khusus algoritma.

Penyelesaian yang ideal adalah sentiasa mentafsir data untuk maksudnya.

Dengan mewakili setiap parameter sebagai objek, anda boleh merumuskan fungsi untuk bekerja dengannya. Sentiasa kita bercakap tentang tentang pemprosesan simbol: nombor atau rentetan ialah jujukan simbol yang disusun dengan cara tertentu.

Terdapat algoritma umum, dan ada yang peribadi. Sebagai contoh, nama keluarga atau nombor rumah adalah rentetan, tetapi jika dalam kes pertama hanya huruf Rusia dibenarkan, maka dalam nombor kes kedua, huruf Rusia dibenarkan, dan mungkin terdapat tanda sempang atau indeks yang dipisahkan dengan garis miring. Indeks boleh menjadi abjad atau angka. Rumah itu mungkin mempunyai bangunan.

Tidak selalu mungkin untuk meramalkan semua situasi. ini perkara penting dalam pengaturcaraan. Jarang sekali algoritma tidak memerlukan pengubahsuaian, dan dalam kebanyakan kes, ia perlu melaraskan fungsi secara sistematik.

Memformalkan maklumat baris yang diproses dalam bentuk objek meningkatkan kebolehbacaan kod dan membolehkan ia dibawa ke tahap pemprosesan semantik. Ini adalah tahap kefungsian yang berbeza dan ketara kualiti terbaik kod dengan kebolehpercayaan yang lebih tinggi daripada algoritma yang dibangunkan.

Terdapat beberapa cara untuk memilih subrentetan dalam JavaScript, termasuk subrentetan(), substr(), keping() dan fungsi regexp.

Dalam JavaScript 1.0 dan 1.1, subrentetan() wujud sebagai satu-satunya cara mudah untuk memilih sebahagian daripada rentetan yang lebih besar. Sebagai contoh, untuk memilih baris tekan daripada Ungkapan, gunakan "Ekspresi".substring(2,7). Parameter pertama kepada fungsi ialah indeks aksara di mana pemilihan bermula, manakala parameter kedua ialah indeks aksara di mana pemilihan berakhir (tidak termasuk): subrentetan(2,7) termasuk indeks 2, 3, 4, 5, dan 6.

Dalam JavaScript 1.2, fungsi substr(), keping() Dan regexp juga boleh digunakan untuk membelah rentetan.

Substr() berkelakuan sama seperti substr bahasa Pearl, di mana parameter pertama menunjukkan indeks aksara di mana pemilihan bermula, manakala parameter kedua menentukan panjang subrentetan. Untuk melaksanakan tugas yang sama seperti dalam contoh sebelumnya, anda perlu menggunakan "Ekspresi".substr(2,5). Ingat, 2 ialah titik permulaan, dan 5 ialah panjang subrentetan yang terhasil.

Apabila digunakan pada rentetan, keping() berkelakuan sama dengan fungsi subrentetan(). Ini, bagaimanapun, lebih banyak lagi alat yang berkuasa, mampu berfungsi dengan sebarang jenis tatasusunan, dan bukan sekadar rentetan. keping() juga menggunakan offset negatif untuk mengakses kedudukan yang diingini, bermula dari hujung baris. "Ekspresi".slice(2,-3) akan mengembalikan subrentetan yang ditemui antara aksara kedua dan aksara ketiga dari penghujung, kembali sekali lagi tekan.

Terkini dan paling banyak kaedah sejagat untuk bekerja dengan subrentetan - ini adalah penyelesaian fungsi biasa ungkapan dalam JavaScript 1.2. Sekali lagi, memberi perhatian kepada contoh yang sama, subrentetan "tekan" diperoleh daripada rentetan "Ekspresi":

Write("Expression".match(/press/));

Objek terbina dalam Tali

Sebuah objek Tali Ini ialah pelaksanaan objek bagi nilai rentetan primitif. Pembinanya kelihatan seperti:

Rentetan Baharu( maksudnya?)

Di sini maksudnya sebarang ungkapan rentetan yang menentukan nilai primitif objek. Jika tidak dinyatakan, nilai primitif objek ialah "" .

Sifat objek String:

pembina Pembina yang mencipta objek. Bilangan aksara setiap baris. prototaip Rujukan kepada prototaip kelas objek.

Kaedah Objek Rentetan Standard

Mengembalikan aksara pada kedudukan yang diberikan dalam rentetan. Mengembalikan kod aksara yang terletak pada kedudukan tertentu dalam rentetan. Mengembalikan gabungan rentetan. Mencipta rentetan daripada aksara yang ditentukan oleh kod Unicode. Mengembalikan kedudukan kejadian pertama subrentetan yang ditentukan. Mengembalikan kedudukan kejadian terakhir subrentetan yang ditentukan. Membandingkan dua rentetan berdasarkan bahasa sistem operasi. Memadankan rentetan dengan ungkapan biasa. Memadankan rentetan dengan ungkapan biasa dan menggantikan subrentetan yang ditemui dengan subrentetan baharu. Memadankan rentetan dengan ungkapan biasa. Mendapatkan semula sebahagian daripada rentetan dan mengembalikan rentetan baharu. Membahagikan rentetan kepada tatasusunan subrentetan. Mengembalikan subrentetan yang diberikan oleh kedudukan dan panjang. Mengembalikan subrentetan yang ditentukan oleh kedudukan permulaan dan penamat. Menukar semua huruf rentetan kepada huruf kecil, dengan mengambil kira bahasa sistem pengendalian. Menukar semua huruf dalam rentetan kepada huruf besar berdasarkan bahasa sistem pengendalian. Menukar semua huruf dalam rentetan kepada huruf kecil. Menukar objek kepada rentetan. Menukar semua huruf dalam rentetan kepada huruf besar. Mengembalikan nilai primitif objek.

Kaedah bukan standard objek String

Mencipta penanda halaman HTML (…). Membungkus rentetan dalam tag …. Membungkus rentetan dalam tag …. Membungkus rentetan dalam tag …. Membungkus rentetan dalam tag …. Membungkus rentetan dalam tag …. Membungkus rentetan dalam tag …. Membungkus rentetan dalam tag …. Mencipta hiperpautan HTML(). Membungkus rentetan dalam tag …. Membungkus rentetan dalam tag …. Membungkus rentetan dalam tag …. Membungkus rentetan dalam tag ….

harta panjang

Sintaks : sebuah objek.panjang Atribut: (DontEnum, DontDelete, ReadOnly)

Nilai harta panjang ialah bilangan aksara dalam baris. Untuk rentetan kosong nilai ini ialah sifar.

kaedah sauh

Sintaks : sebuah objek.anchor( Nama) Hujah: Nama Hasilnya: nilai rentetan

Kaedah sauh objek, disertakan dalam tag …. Tiada semakan untuk melihat sama ada rentetan asal telah disertakan dalam teg ini. Kaedah ini digunakan bersama dengan kaedah document.write dan document.writeln untuk membuat penanda buku dalam dokumen HTML dengan yang ditentukan nama. Sebagai contoh, operator document.write("My text".anchor("Bookmark")) adalah bersamaan dengan operator document.write(" teks saya") .

kaedah besar

Sintaks : sebuah objek.besar() Hasilnya: nilai rentetan

Kaedah besar mengembalikan rentetan yang terdiri daripada objek, disertakan dalam tag …. Tiada semakan untuk melihat sama ada rentetan asal telah disertakan dalam teg ini. Kaedah ini digunakan bersama dengan kaedah document.write dan document.writeln untuk memaparkan teks cetakan besar. Sebagai contoh, penyata document.write("My text".big()) akan memaparkan rentetan My text pada skrin penyemak imbas.

kaedah kejap

Sintaks : sebuah objek.blink() Hasilnya: nilai rentetan

Kaedah kejap mengembalikan rentetan yang terdiri daripada nilai rentetan primitif objek, disertakan dalam tag …. Tiada semakan untuk melihat sama ada rentetan asal telah disertakan dalam teg ini. Kaedah ini digunakan bersama dengan kaedah document.write dan document.writeln untuk memaparkan teks dalam fon berkelip. Tag yang ditentukan bukan sebahagian daripada standard HTML dan hanya disokong oleh pelayar Netscape dan WebTV. Sebagai contoh, penyata document.write("My text".blink()) akan memaparkan rentetan My text pada skrin penyemak imbas.

kaedah berani

Sintaks : sebuah objek.bold() Hasilnya: nilai rentetan

Kaedah berani mengembalikan rentetan yang terdiri daripada nilai rentetan primitif objek, disertakan dalam tag …. Tiada semakan untuk melihat sama ada rentetan asal telah disertakan dalam teg ini. Kaedah ini digunakan bersama dengan kaedah document.write dan document.writeln untuk memaparkan teks dalam font tebal. Contohnya, operator document.write("My text".bold()) akan memaparkan baris teks saya .

kaedah charAt

Sintaks : sebuah objek.charAt( kedudukan) Hujah: kedudukan sebarang ungkapan angka Hasilnya: nilai rentetan

Kaedah charAt mengembalikan rentetan yang terdiri daripada aksara yang terletak dalam yang diberikan jawatan nilai rentetan primitif objek. Kedudukan aksara baris dinomborkan dari sifar hingga sebuah objek. -1. Jika kedudukan berada di luar julat ini, ia kembali baris kosong. Sebagai contoh, penyata document.write("String".charAt(0)) akan mencetak aksara C ke skrin penyemak imbas.

kaedah charCodeAt

Sintaks : sebuah objek.charCodeAt( kedudukan) Hujah: kedudukan sebarang ungkapan angka Hasilnya: nilai angka

Kaedah charAt mengembalikan nombor yang sama dengan kod Unicode bagi aksara yang terdapat dalam yang diberikan jawatan nilai rentetan primitif objek. Kedudukan aksara baris dinomborkan dari sifar hingga sebuah objek. -1. Jika kedudukan berada di luar julat ini, ia kembali NaN. Sebagai contoh, penyata document.write("String".charCodeAt(0).toString(16)) akan dipaparkan kod perenambelasan Huruf Rusia "S": 421.

kaedah concat

Sintaks : sebuah objek.concat( baris0, baris 1, …, rentetanN) Hujah: baris0, baris 1, …, rentetanN sebarang ungkapan rentetan Hasilnya: nilai rentetan

Kaedah concat mengembalikan rentetan baharu yang merupakan gabungan rentetan asal dan hujah kaedah. Kaedah ini bersamaan dengan operasi

sebuah objek + baris0 + baris 1 + … + rentetanN

Contohnya, operator document.write("Frost and sun.".concat("Wonderful day.")) akan memaparkan baris Frost dan sun pada skrin penyemak imbas. Ia adalah hari yang indah.

kaedah tetap

Sintaks : sebuah objek.fixed() Hasilnya: nilai rentetan

Kaedah tetap mengembalikan rentetan yang terdiri daripada nilai rentetan primitif objek, disertakan dalam tag …. Tiada semakan untuk melihat sama ada rentetan asal telah disertakan dalam teg ini. Kaedah ini digunakan bersama dengan kaedah document.write dan document.writeln untuk memaparkan teks dalam fon teletaip. Sebagai contoh, penyata document.write("My text".fixed()) akan memaparkan rentetan Teks saya pada skrin penyemak imbas.

kaedah warna fon

Sintaks : sebuah objek.fontcolor(warna) Hujah: warna ungkapan rentetan Hasilnya: nilai rentetan

Kaedah warna fon mengembalikan rentetan yang terdiri daripada nilai rentetan primitif objek, disertakan dalam tag warna>…. Tiada semakan untuk melihat sama ada rentetan asal telah disertakan dalam teg ini. Kaedah ini digunakan bersama dengan kaedah document.write dan document.writeln untuk memaparkan teks dalam warna yang ditentukan. Sebagai contoh, penyata document.write("My text".fontcolor("red")) akan memaparkan rentetan Teks saya pada skrin penyemak imbas.

kaedah saiz fon

Sintaks : sebuah objek.Saiz huruf( saiz) Hujah: saiz ungkapan angka Hasilnya: nilai rentetan

Kaedah Saiz huruf mengembalikan rentetan yang terdiri daripada nilai rentetan primitif objek, disertakan dalam tag …. Tiada semakan untuk melihat sama ada rentetan asal telah disertakan dalam teg ini. Kaedah ini digunakan bersama dengan kaedah document.write dan document.writeln untuk memaparkan teks dalam fon saiz yang diberi. Sebagai contoh, penyata document.write("My text".fontsize(5)) akan memaparkan rentetan Teks saya pada skrin penyemak imbas.

daripada kaedahCharCode

Sintaks : String.fromCharCode( kod1, kod2, …, kodN) Hujah: kod1, kod2, …, kodN ungkapan angka Hasilnya: nilai rentetan

Kaedah daripadaCharCode mencipta rentetan baharu (tetapi bukan objek rentetan) yang merupakan gabungan aksara Unikod dengan kod kod1, kod2, …, kodN.

ini kaedah statik objek Tali, jadi anda tidak perlu membuat objek rentetan secara khusus untuk mengaksesnya. Contoh:

Var s = String.fromCharCode(65, 66, 67); // s sama dengan "ABC"

kaedah indexOf

Sintaks : sebuah objek.Indeks( subrentetan[,Mulakan]?) Hujah: subrentetan sebarang ungkapan rentetan Mulakan sebarang ungkapan angka Hasilnya: nilai angka

Kaedah Indeks mengembalikan kedudukan pertama subrentetan dalam nilai rentetan primitif objek. sebuah objek Mulakan Mulakan Mulakan Mulakan lebih daripada sebuah objek sebuah objek

Pencarian dilakukan dari kiri ke kanan. Jika tidak, kaedah ini adalah sama dengan kaedah. Contoh berikut mengira bilangan kemunculan corak subrentetan dalam rentetan str .

Fungsi berlaku(str, corak) ( var pos = str.indexOf(corak); untuk (var count = 0; pos != -1; count++) pos = str.indexOf(corak, pos + pattern.length); bilangan pulangan ;)

Kaedah miring

Sintaks : sebuah objek.italics() Hasilnya: nilai rentetan

Kaedah huruf condong mengembalikan rentetan yang terdiri daripada nilai rentetan primitif objek, disertakan dalam tag …. Tiada semakan untuk melihat sama ada rentetan asal telah disertakan dalam teg ini. Kaedah ini digunakan bersama dengan kaedah document.write dan document.writeln untuk memaparkan teks dalam font condong. Contohnya, operator document.write("My text".italics()) akan memaparkan baris teks saya .

kaedah lastIndexOf

Sintaks : sebuah objek.lastIndexOf( subrentetan[,Mulakan]?) Hujah: subrentetan sebarang ungkapan rentetan Mulakan sebarang ungkapan angka Hasilnya: nilai angka

Kaedah lastIndexOf mengembalikan kedudukan terakhir subrentetan dalam nilai rentetan primitif objek sebuah objek. -1. Jika hujah pilihan diberikan Mulakan, maka pencarian dijalankan bermula dari kedudukan Mulakan; jika tidak, maka dari kedudukan 0, iaitu dari aksara pertama baris. Jika Mulakan negatif, maka ia diambil sama dengan sifar; Jika Mulakan lebih daripada sebuah objek. -1, maka ia diambil sama sebuah objek. -1. Jika objek tidak mengandungi subrentetan ini, maka nilai -1 dikembalikan.

Pencarian dilakukan dari kanan ke kiri. Jika tidak, kaedah ini adalah sama dengan kaedah. Contoh:

Var n = "Paus putih".lastIndexOf("paus"); // n sama dengan 6

kaedah pautan

Sintaks : sebuah objek.link( uri) Hujah: uri sebarang ungkapan rentetan Hasilnya: nilai rentetan

Kaedah pautan mengembalikan rentetan yang terdiri daripada nilai rentetan primitif objek, disertakan dalam tag uri"> . Tiada semakan untuk melihat sama ada rentetan sumber telah disertakan dalam teg ini. Kaedah ini digunakan bersama dengan kaedah document.write dan document.writeln untuk mencipta hiperpautan dalam dokumen HTML dengan yang ditentukan uri. Sebagai contoh, dokumen penyata.write("Teks Saya".link("#Penanda Buku")) adalah bersamaan dengan dokumen penyata.write("Teks Saya") .

localeBandingkan kaedah

Sintaks : sebuah objek.localeCompare( baris 1) Hujah: baris 1 sebarang ungkapan rentetan Hasilnya: nombor

Sokongan

Kaedah localeBandingkan membandingkan dua rentetan dengan mengambil kira tetapan nasional sistem pengendalian. Ia mengembalikan -1 jika nilai primitif objek kurang baris1, +1 jika lebih besar baris1, dan 0 jika nilai ini adalah sama.

kaedah perlawanan

Sintaks : sebuah objek.match( Regvyr) Hujah: Regvyr Hasilnya: tatasusunan rentetan

Kaedah perlawanan Regvyr objek. Keputusan perlawanan ialah tatasusunan subrentetan yang ditemui atau null, jika tiada padanan. Di mana:

  • Jika Regvyr tidak mengandungi pilihan carian global, maka kaedah tersebut dilaksanakan Regvyr.eksekutif(sebuah objek) dan hasilnya dikembalikan. Tatasusunan yang terhasil mengandungi subrentetan yang ditemui dalam elemen dengan indeks 0, dan elemen selebihnya mengandungi subrentetan yang sepadan dengan subungkapan Regvyr, disertakan dalam kurungan.
  • Jika Regvyr mengandungi pilihan carian global, kemudian kaedah Regvyr.eksekutif(sebuah objek) dilaksanakan selagi padanan ditemui. Jika n ialah bilangan padanan yang ditemui, maka hasilnya ialah tatasusunan n elemen yang mengandungi subrentetan yang ditemui. Harta benda Regvyr.lastIndex menetapkan nombor kedudukan dalam rentetan sumber yang menunjuk kepada aksara pertama selepas perlawanan terakhir ditemui, atau 0 jika tiada padanan ditemui.

Perlu diingat bahawa kaedah Regvyr.eksekutif mengubah sifat objek Regvyr. Contoh:

menggantikan kaedah

Sintaks : sebuah objek.ganti( Regvyr,barisan) sebuah objek.ganti( Regvyr,fungsi) Hujah: Regvyr ungkapan rentetan ungkapan biasa fungsi nama fungsi atau pengisytiharan fungsi Hasilnya: baris baru

Kaedah menggantikan sepadan dengan ungkapan biasa Regvyr dengan nilai rentetan primitif objek dan menggantikan subrentetan yang ditemui dengan subrentetan lain. Hasilnya ialah rentetan baharu, yang merupakan salinan rentetan asal dengan penggantian dibuat. Kaedah penggantian ditentukan oleh pilihan carian global dalam Regvyr dan jenis hujah kedua.

Jika Regvyr tidak mengandungi pilihan carian global, maka carian dilakukan untuk subrentetan pertama yang sepadan Regvyr dan ia diganti. Jika Regvyr mengandungi pilihan carian global, kemudian semua subrentetan sepadan Regvyr, dan mereka diganti.

barisan, maka setiap subrentetan yang ditemui digantikan dengannya. Dalam kes ini, garisan mungkin mengandungi sifat objek berikut RegExp, seperti $1 , , $9 , lastMatch , lastParen , leftContext dan rightContext . Contohnya, operator document.write("Epal lazat, epal berair.".replace(/apples/g, "pir")) akan memaparkan baris Pear lazat, pear berair pada skrin penyemak imbas.

Jika hujah kedua ialah fungsi, maka setiap subrentetan yang ditemui digantikan dengan memanggil fungsi ini. Fungsi ini mempunyai hujah berikut. Argumen pertama ialah subrentetan yang ditemui, diikuti dengan argumen yang sepadan dengan semua subungkapan Regvyr, disertakan dalam kurungan, hujah kedua terakhir ialah kedudukan subrentetan yang ditemui dalam rentetan sumber, dikira daripada sifar, dan hujah terakhir ialah rentetan sumber itu sendiri. Contoh berikut menunjukkan cara menggunakan kaedah tersebut menggantikan anda boleh menulis fungsi untuk menukar Fahrenheit kepada Celsius. Senario yang diberikan

Fungsi myfunc($0,$1) ( return (($1-32) * 5 / 9) + "C"; ) fungsi f2c(x) ( var s = String(x); return s.replace(/(\d+( \.\d*)?)F\b/, myfunc); ) document.write(f2c("212F"));

akan memaparkan baris 100C pada skrin pelayar.

Sila ambil perhatian bahawa kaedah ini mengubah sifat objek Regvyr.

Gantikan contoh

Menggantikan semua kejadian subrentetan dalam rentetan

Selalunya berlaku bahawa anda perlu menggantikan semua kejadian satu rentetan dengan rentetan lain:

Var str = "foobarfoobar"; str=str.replace(/foo/g,"xxx"); // the result will be str = "xxxbarxxxbar";

kaedah carian

Sintaks : sebuah objek.search( Regvyr) Hujah: Regvyr sebarang ungkapan biasa Hasilnya: ungkapan angka

Kaedah cari sepadan dengan ungkapan biasa Regvyr dengan nilai rentetan primitif objek. Keputusan padanan ialah kedudukan subrentetan pertama ditemui, dikira dari sifar, atau -1 jika tiada padanan. Pada masa yang sama, pilihan carian global dalam Regvyr diabaikan, dan harta benda Regvyr jangan berubah. Contoh:

kaedah hirisan

Sintaks : sebuah objek.slice( Mulakan [,tamat]?) Hujah: Mulakan Dan tamat sebarang ungkapan berangka Hasilnya: baris baru

Kaedah hirisan objek, daripada kedudukan Mulakan kepada kedudukan tamat, tanpa memasukkannya. Jika tamat Mulakan dan sehingga akhir baris asal.

Kedudukan aksara baris dinomborkan dari sifar hingga sebuah objek. -1. Jika nilai Mulakan sebuah objek. +Mulakan. Jika nilai tamat negatif, maka ia digantikan dengan sebuah objek. +tamat. Dalam erti kata lain, hujah negatif dianggap sebagai offset dari hujung rentetan.

Hasilnya ialah nilai rentetan, bukan objek rentetan. Sebagai contoh, penyata document.write("ABCDEF".slice(2,-1)) akan mencetak rentetan CDE ke skrin penyemak imbas.

kaedah kecil

Sintaks : sebuah objek.small() Hasilnya: nilai rentetan

Kaedah kecil mengembalikan rentetan yang terdiri daripada nilai rentetan primitif objek, disertakan dalam tag …. Tiada semakan untuk melihat sama ada rentetan asal telah disertakan dalam teg ini. Kaedah ini digunakan bersama dengan kaedah document.write dan document.writeln untuk memaparkan teks cetakan kecil. Sebagai contoh, penyata document.write("My text".small()) akan memaparkan rentetan Teks saya pada skrin penyemak imbas.

kaedah split

Sintaks : sebuah objek.split( pembatas [,nombor]?) Hujah: pembatas rentetan atau ungkapan biasa nombor ungkapan angka Hasilnya: tatasusunan rentetan(objek Susunan)

Kaedah berpecah memecahkan nilai primitif objek kepada tatasusunan subrentetan dan mengembalikannya. Pembahagian kepada subrentetan dilakukan seperti berikut. Rentetan sumber diimbas dari kiri ke kanan mencari pembatas. Sebaik sahaja ia ditemui, subrentetan daripada penghujung pembatas sebelumnya (atau dari permulaan baris jika ini adalah kejadian pertama bagi pembatas) hingga permulaan yang ditemui ditambahkan pada tatasusunan subrentetan. Oleh itu, pemisah itu sendiri tidak muncul dalam teks subrentetan.

Hujah pilihan nombor menentukan saiz maksimum yang mungkin bagi tatasusunan yang terhasil. Jika ia dinyatakan, maka selepas pemilihan nombor Kaedah subrentetan keluar walaupun imbasan rentetan asal belum selesai.

pembatas boleh ditentukan sama ada sebagai rentetan atau sebagai ungkapan biasa. Terdapat beberapa kes yang memerlukan pertimbangan khusus:

Contoh berikut menggunakan ungkapan biasa untuk menentukan tag HTML sebagai pemisah. Operator

akan memaparkan baris Teks, tebal dan condong pada skrin penyemak imbas.

kaedah mogok

Sintaks : sebuah objek.strike() Hasilnya: nilai rentetan

Kaedah mogok mengembalikan rentetan yang terdiri daripada nilai rentetan primitif objek, disertakan dalam tag …. Tiada semakan untuk melihat sama ada rentetan asal telah disertakan dalam teg ini. Kaedah ini digunakan bersama dengan kaedah document.write dan document.writeln untuk memaparkan teks dalam fon coretan. Sebagai contoh, penyata document.write("My text".strike()) akan memaparkan rentetan Teks saya pada skrin penyemak imbas.

sub kaedah

Sintaks : sebuah objek.sub() Hasilnya: nilai rentetan

Kaedah sub mengembalikan rentetan yang terdiri daripada nilai rentetan primitif objek, disertakan dalam tag …. Tiada semakan untuk melihat sama ada rentetan asal telah disertakan dalam teg ini. Kaedah ini digunakan bersama dengan kaedah document.write dan document.writeln untuk memaparkan teks sebagai subskrip. Sebagai contoh, dokumen penyata.write("Teks saya".sub()) akan memaparkan rentetan Teks saya pada skrin penyemak imbas.

kaedah substr

Sintaks : sebuah objek.substr( kedudukan [,panjang]?) Hujah: kedudukan Dan panjang ungkapan angka Hasilnya: nilai rentetan

Kaedah substr mengembalikan subrentetan nilai primitif rentetan objek bermula dengan ini jawatan dan mengandungi panjang watak. Jika panjang tidak ditentukan, maka subrentetan dikembalikan bermula dari yang diberikan jawatan dan sehingga akhir baris asal. Jika panjang adalah negatif atau sifar, rentetan kosong dikembalikan.

Kedudukan aksara baris dinomborkan dari sifar hingga sebuah objek. -1. Jika kedudukan lebih besar daripada atau sama dengan sebuah objek., kemudian rentetan kosong dikembalikan. Jika kedudukan adalah negatif, maka ia ditafsirkan sebagai offset dari hujung baris, iaitu, ia digantikan dengan sebuah objek.+kedudukan.

Catatan. Jika kedudukan adalah negatif, maka internet Explorer tersilap menggantikannya dengan 0, jadi atas sebab keserasian pilihan ini tidak boleh digunakan.

Var src = "abcdef"; var s1 = src.substr(1, 3); // "bcd" var s2 = src.substr(1); // "bcdef" var s3 = src.substr(-1); // "f", tetapi dalam MSIE: "abcdef"

kaedah subrentetan

Sintaks : sebuah objek.substring( Mulakan [,tamat]) Hujah: Mulakan Dan tamat ungkapan angka Hasilnya: nilai rentetan

Kaedah subrentetan mengembalikan subrentetan nilai primitif rentetan objek, daripada kedudukan Mulakan kepada kedudukan tamat, tanpa memasukkannya. Jika tamat tidak ditentukan, maka subrentetan dikembalikan, bermula dari kedudukan Mulakan dan sehingga akhir baris asal.

Kedudukan aksara baris dinomborkan dari sifar hingga sebuah objek. -1. Hujah negatif atau sama NaN digantikan dengan sifar; jika hujah lebih besar daripada panjang rentetan asal, maka ia digantikan dengannya. Jika Mulakan lebih tamat, kemudian mereka bertukar tempat. Jika Mulakan sama tamat, kemudian rentetan kosong dikembalikan.

Hasilnya ialah nilai rentetan, bukan objek rentetan. Contoh:

Var src = "abcdef"; var s1 = src.substring(1, 3); // "bc" var s2 = src.substring(1, -1); // "a" var s3 = src.substring(-1, 1); // "a"

kaedah sup

Sintaks : sebuah objek.sup() Hasilnya: nilai rentetan

Kaedah sup mengembalikan rentetan yang terdiri daripada nilai rentetan primitif objek, disertakan dalam tag …. Tiada semakan untuk melihat sama ada rentetan asal telah disertakan dalam teg ini. Kaedah ini digunakan bersama dengan kaedah document.write dan document.writeln untuk memaparkan teks sebagai superskrip. Sebagai contoh, penyata document.write("My text".sup()) akan memaparkan rentetan Teks saya pada skrin penyemak imbas.

toLocaleLowerCase Kaedah

Sintaks : sebuah objek.toLocaleLowerCase() Hasilnya: baris baru

Sokongan: Internet Explorer Disokong daripada versi 5.5. Netscape Navigator Tidak disokong.

Kaedah toLocaleLowerCase mengembalikan rentetan baharu di mana semua huruf rentetan asal digantikan dengan huruf kecil, dengan mengambil kira tetapan setempat sistem pengendalian. Baki aksara rentetan asal tidak diubah. Rentetan asal tetap sama. Biasanya kaedah ini mengembalikan hasil yang sama seperti ; perbezaan hanya mungkin jika pengekodan bahasa bercanggah dengan peraturan Unicode untuk menukar huruf besar kepada huruf kecil.

kaedah toLocaleUpperCase

Sintaks : sebuah objek.toLocaleUpperCase() Hasilnya: baris baru

Sokongan: Internet Explorer Disokong daripada versi 5.5. Netscape Navigator Tidak disokong.

Kaedah kepadaLocaleUpperCase mengembalikan rentetan baharu di mana semua huruf rentetan asal digantikan dengan huruf besar, dengan mengambil kira tetapan setempat sistem pengendalian. Baki aksara rentetan asal tidak diubah. Rentetan asal tetap sama. Biasanya kaedah ini mengembalikan hasil yang sama seperti ; perbezaan hanya mungkin jika pengekodan bahasa bercanggah dengan peraturan Unicode untuk menukar huruf kecil kepada huruf besar.

toLowerCase kaedah

Sintaks : sebuah objek.toLowerCase() Hasilnya: baris baru

Kaedah kepadaLowerCase mengembalikan rentetan baharu dengan semua huruf rentetan asal digantikan dengan huruf kecil. Baki aksara rentetan asal tidak diubah. Rentetan asal tetap sama. Sebagai contoh, penyata document.write("String object".toLowerCase()) akan memaparkan rentetan objek rentetan.

Rentetan ialah urutan satu atau lebih aksara yang boleh mengandungi huruf, nombor dan simbol lain. Dalam JavaScript, ia adalah jenis data tidak berubah yang paling mudah.

Rentetan membolehkan anda memaparkan dan memanipulasi teks, dan teks ialah cara utama untuk berkomunikasi dan menghantar maklumat di web. Oleh itu, rentetan adalah salah satu konsep utama pengaturcaraan.

Tutorial ini akan mengajar anda cara membuat dan melihat output rentetan, menggabungkan rentetan dan menyimpannya dalam pembolehubah. Anda juga akan belajar tentang peraturan untuk menggunakan tanda petikan, apostrof dan peralihan. baris baru dalam JavaScript.

Mencipta dan melihat rentetan

Terdapat tiga cara untuk mencipta rentetan dalam JavaScript: ia boleh ditulis di dalam petikan tunggal (‘), petikan berganda (‘), atau kutu belakang (`). Walaupun skrip kadangkala mengandungi ketiga-tiga jenis rentetan, hanya satu jenis tanda petikan harus digunakan dalam satu baris.

Rentetan tunggal dan dua petikan pada asasnya adalah perkara yang sama. Tiada konvensyen mengenai penggunaan satu jenis tanda petikan atau yang lain, tetapi secara amnya disyorkan untuk menggunakan satu jenis secara konsisten dalam skrip program.

"Rentetan ini menggunakan petikan tunggal.";
"Rentetan ini menggunakan petikan berganda.";

Ketiga dan cara terbaru mencipta rentetan dipanggil literal template. Literal templat ditulis di dalam petikan belakang (juga dipanggil backtick) dan berfungsi dengan cara yang sama seperti rentetan biasa Dengan beberapa fungsi tambahan yang akan kita lihat dalam artikel ini.

`Rentetan ini menggunakan kutu belakang.`;

Cara paling mudah untuk melihat output rentetan adalah dengan memasukkannya ke dalam konsol menggunakan console.log().

console.log("Ini adalah rentetan dalam konsol.");
Ini adalah rentetan dalam konsol.

Kepada orang lain dengan cara yang mudah untuk meminta nilai rentetan ialah tetingkap pop timbul dalam penyemak imbas yang boleh dipanggil menggunakan alert():

alert("Ini adalah rentetan dalam amaran.");

Baris ini akan membuka tetingkap pemberitahuan dalam penyemak imbas dengan teks berikut:

Ini adalah rentetan dalam amaran.

Kaedah alert() digunakan kurang kerap kerana makluman perlu ditutup sentiasa.

Menyimpan Rentetan dalam Pembolehubah

Pembolehubah dalam JavaScript dinamakan bekas yang menyimpan nilai menggunakan kata kunci var, const atau let. Rentetan boleh diberikan kepada pembolehubah.

const newString = "Ini adalah rentetan yang diberikan kepada pembolehubah.";

Pembolehubah newString kini mengandungi rentetan yang boleh dirujuk dan dipaparkan menggunakan konsol.

console.log(newString);
Ini adalah rentetan yang diberikan kepada pembolehubah.

Dengan memberikan rentetan kepada pembolehubah, anda tidak perlu menaip semula rentetan setiap kali anda mahu mengeluarkannya, menjadikannya lebih mudah untuk bekerja dengan rentetan dalam program.

Penggabungan rentetan

Penggabungan rentetan ialah proses menggabungkan dua atau lebih rentetan menjadi satu rentetan baharu. Penggabungan dilakukan menggunakan operator +. Simbol + juga merupakan operator penambahan dalam operasi matematik.

Sebagai contoh, cuba gabungkan dua rentetan pendek:

"Laut" + "kuda";
Kuda laut

Concatenation menggabungkan hujung satu rentetan ke permulaan rentetan lain tanpa memasukkan ruang. Untuk mempunyai ruang antara baris, ia mesti ditambah pada penghujung baris pertama.

"Laut" + "kuda";
Kuda laut

Concatenation membolehkan anda menggabungkan rentetan dan pembolehubah dengan nilai rentetan.



const favePoem = "Puisi kegemaran saya ialah " + puisi + " oleh " + pengarang ".";

Rentetan baharu yang terhasil daripada penggabungan boleh digunakan dalam atur cara.

Pembolehubah dengan literal templat

Salah satu ciri literal templat ialah keupayaan untuk memasukkan ungkapan dan pembolehubah dalam rentetan. Daripada penggabungan, anda boleh menggunakan sintaks $() untuk memasukkan pembolehubah.

puisi const = "Lautan Luas";
const author = "Pablo Neruda";
const favePoem = `Puisi kegemaran saya ialah $(poem) oleh $(author).`;
Puisi kegemaran saya ialah The Wide Ocean oleh Pablo Neruda.

Sintaks ini membolehkan anda mendapatkan hasil yang sama. Literal templat memudahkan penyambungan rentetan.

Tersurat rentetan dan nilai rentetan

Seperti yang anda mungkin perasan, semua rentetan ditulis dalam petikan atau petikan belakang, tetapi apabila output, rentetan itu tidak mengandungi petikan.

"Disebalik lautan";
Disebalik lautan

Rentetan literal ialah rentetan seperti yang tertera di dalamnya kod sumber, termasuk petikan. Nilai rentetan ialah rentetan yang muncul dalam output (tanpa petikan).

Dalam contoh ini, "Beyond the Sea" ialah rentetan literal, dan Beyond the Sea ialah nilai rentetan.

Melintasi petikan dan apostrof dalam rentetan

Oleh kerana tanda petikan digunakan untuk menandakan rentetan, terdapat peraturan khas untuk menggunakan apostrof dan tanda petikan dalam rentetan. Sebagai contoh, JavaScript akan mentafsirkan tanda kutip di tengah-tengah rentetan petikan tunggal sebagai petikan tunggal penutup dan cuba membaca rentetan yang lain sebagai kod.

Pertimbangkan contoh ini:

const brokenString = "Saya rentetan yang patah";
console.log(brokenString);
tidak diketahui: Token yang tidak dijangka (1:24)

Perkara yang sama berlaku jika anda cuba menggunakan petikan berganda di dalam rentetan petikan dua kali. Jurubahasa tidak akan melihat perbezaannya.

Untuk mengelakkan ralat sedemikian, anda boleh menggunakan:

  • Sintaks rentetan yang berbeza.
  • Simbol melarikan diri.
  • Templat literal.

Sintaks rentetan alternatif

Cara paling mudah untuk mengatasi masalah ini ialah menggunakan sintaks yang bertentangan dengan sintaks yang anda gunakan dalam skrip. Sebagai contoh, letakkan rentetan dengan apostrof dalam petikan berganda:

"Kami selamat menggunakan apostrof dalam petikan berganda."

Garis petikan boleh diambil daripada petikan tunggal:

"Kemudian dia berkata, "Hello, Dunia!";

Dengan menggabungkan petikan tunggal dan berganda, anda boleh mengawal paparan petikan dan apostrof dalam rentetan. Walau bagaimanapun, ini akan menjejaskan ketekalan sintaks dalam fail projek, menjadikannya sukar untuk dikekalkan.

watak melarikan diri \

Dengan menggunakan garis miring ke belakang, JavaScript tidak akan mentafsirkan petikan sebagai petikan penutup.

Gabungan \' akan sentiasa dianggap sebagai apostrof dan \" sebagai petikan berganda, tiada pengecualian.

Ini membolehkan apostrof digunakan dalam rentetan petikan tunggal dan petikan untuk digunakan dalam rentetan petikan dua kali.

"Kami\"selamat menggunakan tanda kutip dalam petikan tunggal.\"
"Kemudian dia berkata, \"Hello, Dunia!\"";

Kaedah ini kelihatan agak kemas. Tetapi ia adalah perlu jika baris yang sama mengandungi kedua-dua apostrof dan petikan berganda.

Templat literal

Literal templat ditakrifkan oleh petikan belakang, jadi kedua-dua petikan berganda dan apostrof boleh digunakan dengan selamat tanpa sebarang manipulasi tambahan.

`Kami selamat menggunakan apostrof dan "petikan" dalam literal templat.`;

Literal templat bukan sahaja mengelakkan ralat semasa memaparkan petikan dan apostrof, tetapi juga menyediakan sokongan untuk ungkapan sebaris dan blok berbilang baris, seperti yang dibincangkan dalam bahagian seterusnya.

Barisan berbilang talian dan baris baharu

Dalam sesetengah situasi terdapat keperluan untuk memasukkan aksara baris baharu atau pemisah baris. Aksara melarikan diri \n atau \r akan membantu memasukkan baris baru ke dalam output kod.

const threeLines = "Ini ialah rentetan\yang merentangi\tiga baris.";
Ini adalah rentetan
yang merentangi
tiga baris.

Ini akan membahagikan output kepada berbilang baris. Walau bagaimanapun, jika kod tersebut mengandungi beratur panjang, mereka akan sukar untuk bekerja dan membaca. Untuk memaparkan satu rentetan pada berbilang baris, gunakan operator penggabungan.

const threeLines = "Ini adalah rentetan\n" +
"yang merentasi\n" +
"tiga baris.";

Anda juga boleh melarikan diri dari baris baharu menggunakan aksara melarikan diri \.

const threeLines = "Ini adalah rentetan\n\
yang merentasi\n\
tiga baris.";

Catatan: Kaedah ini tidak disyorkan kerana ia boleh menyebabkan masalah dalam sesetengah pelayar.

Untuk menjadikan kod anda boleh dibaca, gunakan literal templat. Ini menghapuskan penggabungan dan watak melarikan diri.

const threeLines = `Ini adalah rentetan
yang merentangi
tiga baris.`;
Ini adalah rentetan
yang merentangi
tiga baris.

Oleh kerana asas kod yang berbeza boleh digunakan piawaian yang berbeza, adalah penting untuk mengetahui semua cara untuk memutuskan baris baharu dan mencipta rentetan berbilang baris.

Kesimpulan

Kini anda mengetahui prinsip asas bekerja dengan rentetan dalam JavaScript, anda boleh mencipta rentetan dan literal templat, melakukan penggabungan dan traversal, dan menetapkan rentetan kepada pembolehubah.

Tag:

Artikel ini akan bercakap tentang apa itu rentetan dalam JavaScript dan kaedah bekerja dengan mereka.

Rentetan hanyalah kumpulan aksara, seperti "JavaScript", "Hello world!" ", "http://www.quirksmode.org" atau pun "14". Untuk memprogram dalam JavaScript, anda perlu tahu apa itu rentetan dan cara bekerja dengannya, kerana anda perlu menggunakannya dengan kerap. Banyak perkara, seperti URL halaman, nilai CSS-parameter dan elemen input bentuk adalah semua rentetan.

Mula-mula saya akan cuba menerangkan bekerja dengan rentetan, maka perbezaan antara dalam JavaScript. Walaupun anda mempunyai pengalaman pengaturcaraan dalam bahasa lain, baca bahagian ini dengan teliti. Pada akhirnya saya akan bercakap tentang yang paling penting rentetan dalam JavaScript.

Asas Rentetan

Mari kita lihat asas bekerja dengan rentetan dalam JavaScript.

Menggunakan petikan

Apabila anda mengumumkan rentetan dalam JavaScript atau bekerjasama dengan mereka, sentiasa sertakan mereka dalam petikan tunggal atau berganda. Ini memberitahu pelayar bahawa ia berurusan dengan rentetan. Jangan campurkan penggunaan petikan dalam kod anda; jika anda memulakan baris dengan petikan tunggal dan berakhir dengan petikan berganda, JavaScript tidak akan memahami maksud anda. Biasanya, saya menggunakan petikan tunggal apabila bekerja dengan rentetan, kerana saya memilih untuk menggunakan petikan berganda untuk HTML dan petikan tunggal untuk JavaScript. Sudah tentu, anda boleh melakukan segala-galanya secara berbeza, tetapi saya menasihati anda untuk membuat peraturan yang sama untuk diri sendiri.

Mari bayangkan dua baris yang akan kita gunakan sepanjang artikel:

Var a = "Hello dunia!"; var b = "Saya seorang pelajar.";

Kami kini telah mengisytiharkan dua pembolehubah, "a" dan "b", dan memberikan mereka nilai rentetan. Selepas itu kita boleh bekerja dengan mereka, tetapi pertama-tama mari kita selesaikan satu masalah: katakan saya menulis:

Var b = "Saya seorang pelajar.";

Rentetan itu mengandungi petikan tunggal tambahan dan JavaScript menganggap rentetan itu lengkap dan memaparkan mesej ralat tanpa memahami perkara yang akan datang seterusnya. Oleh itu anda perlukan petikan melarikan diri, memberitahu penyemak imbas untuk menganggapnya sebagai watak dan bukan sebagai pengakhiran baris. Ini dilakukan menggunakan garis miring ke belakang sebelum petikan:

Var b = "Saya seorang pelajar.";

Ambil perhatian bahawa anda boleh memasukkan petikan berganda ke dalam rentetan tanpa melepaskannya. Oleh kerana anda menggunakan petikan tunggal untuk memulakan dan menamatkan rentetan,

Var b = "Saya seorang "pelajar".";

dirasakan tanpa masalah. Petikan berganda secara automatik dianggap sebagai sebahagian daripada rentetan dan bukannya arahan.

Fungsi terbina dalam

Setelah rentetan ditakrifkan, anda boleh mula menggunakannya. Sebagai contoh, anda boleh menggabungkan satu rentetan dengan rentetan yang lain, atau ambil subrentetan daripada rentetan “b” yang terdiri daripada aksara kedua hingga keempat dan masukkannya ke tengah rentetan “a”, atau tentukan aksara yang kedua belas dalam “a”, berapa banyak aksara dalam “b ”, sama ada ia mengandungi huruf “ q” dsb.

Untuk melakukan ini, anda boleh menggunakan fungsi terbina dalam yang dipratakrifkan JavaScript untuk setiap baris. Salah satu daripadanya, "panjang," mengembalikan panjang rentetan. Iaitu, jika anda ingin mengira panjang "Hello world!", tulis:

Var c = "Hello dunia!".length;

Sebelum ini, kami memberikan rentetan ini kepada pembolehubah "a". Oleh itu, anda telah menjadikan pembolehubah "a" sebagai rentetan, jadi fungsi "panjang" juga boleh digunakan padanya, dan operasi berikut akan memberikan hasil yang sama:

Var c = a.panjang;

Ingat bahawa anda boleh menggunakan "panjang" untuk sebarang rentetan - ia adalah fungsi terbina dalam. Awak boleh hitung panjang mana-mana rentetan, sebagai contoh: "location.href" atau "document.title" atau diisytiharkan oleh anda.

Di bawah saya akan membentangkan senarai kaedah dan sifat terbina dalam biasa.

Rentetan dan nombor

Sesetengah bahasa pengaturcaraan memerlukan anda untuk menunjukkan sama ada berubah mengikut nombor atau rentetan sebelum melakukan apa-apa lagi dengannya. JavaScript lebih mudah merujuk kepada perbezaan antara rentetan dan nombor. Malah, anda juga boleh menambah nombor dengan rentetan:

Var c = a + 12;

Dalam sesetengah bahasa pengaturcaraan, pemprosesan rentetan sedemikian akan mengakibatkan ralat. Lagipun, "a" ialah rentetan, dan "12" ialah nombor. Walau bagaimanapun, JavaScript cuba menyelesaikan masalah dengan mengandaikan bahawa "12" juga merupakan rentetan. Oleh itu "c" menjadi "Hello world!12". Ini bermakna jika anda menggunakan "+" dengan rentetan dan nombor, JavaScript cuba menjadikan nombor itu rentetan. Jika anda menggunakan operasi matematik kepada rentetan, JavaScript cuba mengubahnya menjadi nombor. Jika tidak mungkin untuk menukar rentetan kepada nombor (contohnya, disebabkan kehadiran huruf di dalamnya), JavaScript mengembalikan NaN - "Bukan Nombor - bukan nombor."

Akhir sekali, dalam JavaScript tidak ada perbezaan antara integer dan nombor titik terapung.

Nombor → rentetan

Untuk penukaran nombor kepada rentetan masukkan:

Var c = (16 * 24) / 49 + 12; d = c.toString();

Anda kemudian boleh menggunakan semua kaedah rentetan kepada "d" dan "c" masih mengandungi nombor.

Rentetan → nombor

Jika anda ingin menukar rentetan kepada nombor, mula-mula pastikan ia terdiri daripada aksara 0-9 sahaja. Untuk melakukan ini, saya hanya mendarabkan rentetan dengan 1.

Var c = "1234"; d = c * 1;

Memandangkan pendaraban hanya berfungsi dengan nombor, JavaScript menukar rentetan menjadi nombor jika boleh. Jika tidak, hasilnya ialah NaN.

Perhatikan bahawa jika anda menulis:

Var c = "1234"; d = c + 0;

Hasilnya ialah "12340" kerana JavaScript menggunakan "+" untuk menggabungkan rentetan daripada menambahkannya.

Sifat dan Kaedah String

Jadi apa yang boleh kita lakukan dengan rentetan? Persatuan adalah kes khas, tetapi semua arahan lain (kaedah) boleh digunakan dengan mana-mana rentetan menggunakan konstruk:

String_name.method();

Senarai kaedah JavaScript terbina dalam untuk bekerja dengan rentetan

Concatenation - menyambung rentetan

Pertama, anda boleh menggabungkan rentetan dengan menambahkannya bersama-sama, seperti ini:

Document.write(a + b);

keputusannya ialah: "Hello dunia! Saya seorang pelajar." " Tetapi sudah tentu anda mahu ada ruang antara ayat. Untuk melakukan ini, tulis kod seperti berikut:

Document.write(a + " " + b);

Jadi kami akan menyambung tiga rentetan: "a", """" (satu ruang) dan "b", menghasilkan: "Hello dunia!" Saya seorang pelajar. »

Anda juga boleh menggunakan nombor atau pengiraan, contohnya:

Document.write(a + 3 * 3 + b);

Sekarang kita menggabungkan rentetan "a", kemudian hasil ungkapan "3 * 3", dianggap sebagai rentetan, dan "b", mendapat: "Hello dunia!9 Saya seorang pelajar. »

Anda perlu berhati-hati apabila menggunakan penambahan. Pasukan

Document.write(a + 3 + 3 + b);

menghubungkan 4 rentetan: "a", "3", "3" dan "b" kerana "+" dalam dalam kes ini bermaksud "menyertai barisan", bukan "menambah" dan hasilnya ialah: "Hello world!33 Saya seorang pelajar. " Jika anda ingin menambah 3 dan 3 sebelum membuat rentetan, gunakan kurungan.

Document.write(a + (3 + 3) + b);

Ungkapan ini menghubungkan rentetan “a”, hasil ungkapan “3 + 3” dan “b”, menghasilkan: “Hello world!6 Saya seorang pelajar. "

Indeks

Salah satu kaedah terbina dalam yang paling banyak digunakan ialah "indexOf". Setiap aksara mempunyai indeks sendiri yang mengandungi nombor kedudukannya dalam baris. Ambil perhatian bahawa indeks aksara pertama ialah 0, yang kedua ialah 1, dsb. Oleh itu, indeks aksara “w” dalam rentetan “a” ialah 6.

Menggunakan "indexOf" kita boleh mengeluarkan indeks aksara. Tulis ".indexOf(" ")" selepas nama baris dan masukkan aksara yang anda cari di antara petikan. Sebagai contoh:

Var a = "Hello dunia!"; document.write(a.indexOf("w"));

akan kembali 6 . Jika aksara berlaku beberapa kali, kaedah ini mengembalikan kejadian pertama. Itu dia

Document.write(a.indexOf("o"));

akan mengembalikan 4 kerana ia adalah indeks bagi "o" pertama dalam rentetan.

Anda juga boleh mencari gabungan simbol. (Sudah tentu, ini juga rentetan, tetapi untuk mengelakkan kekeliruan, saya tidak akan memanggilnya begitu). "indexOf" mengembalikan kedudukan aksara pertama gabungan. Sebagai contoh:

Document.write(a.indexOf("o w"));

juga akan mengembalikan 4 kerana ia adalah indeks "o".

Selain itu, adalah mungkin untuk mencari watak selepas indeks tertentu. Jika anda masuk

Document.write(a.indexOf("o", 5));

maka anda akan mendapat indeks "o" pertama mengikuti watak dengan indeks 5 (ini adalah ruang), iaitu, hasilnya akan menjadi 7 .

Jika aksara atau gabungan tidak berlaku dalam rentetan, "indexOf" akan mengembalikan "-1". Ini pada asasnya adalah penggunaan "indexOf" yang paling popular: menyemak kewujudan gabungan aksara tertentu. Ia adalah teras skrip yang mentakrifkan penyemak imbas. Untuk menentukan IE anda mengambil baris:

Navigator.userAgent;

dan semak jika ia mengandungi "MSIE":

If(navigator.userAgent.indexOf("MSIE") != -1) ( //Sebarang tindakan dengan Internet Explorer)

Jika indeks "MSIE" bukan "-1" (jika "MSIE" berlaku di mana-mana dalam baris), maka pelayar semasa- I.E.

lastIndexOf

Terdapat juga kaedah "lastIndexOf" yang mengembalikan kejadian terakhir aksara atau gabungan. Ia bertentangan dengan "indexOf". Pasukan

Var b = "Saya seorang pelajar."; document.write(b.lastIndexOf("t"));

akan mengembalikan 13 kerana ia adalah indeks "t" terakhir dalam rentetan.

charAt

Kaedah "charAt" mengembalikan aksara pada kedudukan yang ditentukan. Sebagai contoh, apabila anda masuk

Var b = "Saya seorang pelajar."; document.write(b.charAt(5));

hasilnya ialah "a" kerana ia adalah watak di kedudukan keenam (ingat bahawa indeks aksara pertama bermula pada 0).

panjang

Kaedah "panjang" mengembalikan panjang rentetan.

Var b = "Saya seorang pelajar."; document.write(b.length);

akan kembali "15". Panjang rentetan adalah 1 lebih besar daripada indeks aksara terakhir.

berpecah

"split" ialah kaedah khas yang membolehkan anda memisahkan rentetan dengan watak-watak tertentu. Digunakan apabila hasilnya perlu disimpan dalam tatasusunan dan bukannya dalam pembolehubah mudah. Mari bahagikan "b" dengan ruang:

Var b = "Saya seorang pelajar." var temp = new Array(); temp = b.split(" ");

Sekarang rentetan itu dibahagikan kepada 4 subrentetan, yang diletakkan dalam tatasusunan "temp". Ruang itu sendiri telah hilang.

Suhu = "Saya"; temp = "am"; temp = "a"; temp = "pelajar";

Kaedah "substring" digunakan untuk menolak sebahagian daripada rentetan. Sintaks kaedah: ".substring(first_index, last_index)". Sebagai contoh:

Var a = "Hello dunia!"; document.write(a.substring(4, 8));

akan mengembalikan "o wo", daripada "o" pertama (indeks 4) kepada yang kedua (indeks 7). Ambil perhatian bahawa "r" (indeks 8) bukan sebahagian daripada subrentetan.

Anda juga boleh menulis:

Var a = "Hello dunia!"; document.write(a.substring(4));

Ini akan memberikan keseluruhan subrentetan "o world! ", bermula daripada aksara dengan indeks 4 hingga hujung baris.

substr

Terdapat juga kaedah "substr" yang berfungsi sedikit berbeza. Ia tidak menggunakan nombor indeks sebagai hujah kedua, tetapi bilangan aksara. Itu dia

Document.write(a.substr(4, 8));

mengembalikan 8 aksara, bermula daripada aksara pada indeks 4 (“o”), iaitu, hasilnya ialah: “ o world! »

toLowerCase dan toUpperCase

Akhir sekali, 2 kaedah yang kadangkala berguna kepada anda: "toLowerCase" menukar keseluruhan rentetan kepada huruf kecil dan "toUpperCase" menukarnya kepada huruf besar.

Var b = "Saya seorang pelajar."; document.write(b.toUpperCase());

Hasilnya, kita dapat “SAYA SEORANG PELAJAR. "