JavaScript tidak mewakili satu karakter tunggal, hanya tipe string string, dan tipe karakter setara dengan string yang hanya berisi satu karakter.
String String adalah tipe data dasar dari JavaScript. Pada saat yang sama, JavaScript juga mendukung objek string, yang merupakan objek pembungkus dengan nilai asli. JavaScript secara otomatis dikonversi antara bentuk asli dan bentuk objek saat diperlukan. Artikel ini akan memperkenalkan tipe string asli dan objek pembungkus string
definisi
Tipe String adalah urutan karakter yang terdiri dari karakter unicode 16-bit yang terlampir dalam kutipan.
Jenis string sering digunakan untuk mewakili data teks, dan pada saat ini setiap elemen dalam string dianggap sebagai titik kode. Setiap elemen dianggap menempati posisi dalam urutan ini, mengindeks posisi ini dengan nilai non-negatif. Karakter pertama dimulai pada posisi 0, karakter kedua adalah pada posisi 1, dan seterusnya
Panjang string adalah jumlah elemen (misalnya, nilai 16-bit). String kosong memiliki panjang nol, sehingga tidak mengandung elemen apa pun
Pengkodean Unicode
Semua karakter dapat ditulis dalam bentuk '/uxxxx', di mana xxxx mewakili pengkodean unicode dari karakter. Misalnya, /U00A9 mewakili simbol hak cipta
var s = '/u00a9'; s // "©"
Jika string berisi data teks aktual, setiap elemen dianggap sebagai unit UTF-16 terpisah. Setiap karakter disimpan dalam format 16-bit (mis. 2 byte) UTF-16 di dalam javascript
Tetapi UTF-16 memiliki dua panjang: untuk karakter antara U+0000 dan U+FFFF, panjangnya 16 bit (mis. 2 byte); Untuk karakter antara U+10000 dan U+10FFFF, panjangnya adalah 32 bit (mis. 4 byte), dan dua byte pertama adalah antara 0xD800 dan 0xDBFF, dan dua byte terakhir adalah antara 0xdc00 dan 0xdffff, dan dua byte terakhir adalah antara 0xDC00 dan 0XDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF.
Misalnya, karakter "?" yang sesuai dengan U+1D306 ditulis sebagai UTF-16, yaitu 0xD834 0XDF06. Browser akan dengan benar mengenali keempat byte ini sebagai satu karakter, tetapi panjang karakter di dalam JavaScript selalu ditetapkan hingga 16 bit, dan keempat byte ini akan diperlakukan sebagai dua karakter.
var s = '/ud834/udf06'; s // "?" s.length // 2
Untuk karakter unicode 4-byte dari U+10000 hingga U+10FFFF, JavaScript selalu diperlakukan sebagai dua karakter (atribut panjang karakter adalah 2)
tanda kutip
String string dinyatakan oleh kutipan ganda (") atau kutipan tunggal ('). Java menyatakan string dengan kutipan ganda dan karakter dengan kutipan tunggal. Karena ecmascript tidak memiliki jenis karakter, salah satu dari dua notasi ini dapat digunakan, tetapi kutipan kiri dan kanan harus cocok.
// benar var scolor1 = "merah"; var scolor2 = 'red'; // error var scolor1 = "red '; var scolor2 =' red";
Sebuah string yang dibatasi oleh kutipan tunggal dapat berisi kutipan ganda, dan string yang dibatasi oleh kutipan ganda juga dapat berisi kutipan tunggal.
'key = "value"' "Ini perjalanan panjang"
Kode JavaScript dapat dicampur dengan string kode HTML, dan kode HTML juga akan dicampur dengan kode JavaScript. Oleh karena itu, yang terbaik adalah menggunakan gaya kutipan terpisah di JavaScript dan kode HTML masing -masing
Kutipan tunggal digunakan untuk mewakili string dalam javascript, kutipan ganda digunakan untuk mewakili string dalam penangan acara HTML
<tombol OnClick = "ALERT ('Terima kasih')"> Klik saya </button>Backslash
Jika Anda ingin menggunakan kutipan tunggal dalam satu kutipan string yang dibatasi, atau kutipan ganda dalam string yang dibatasi kutipan ganda, Anda perlu menggunakan backslash (/)
Situasi umum adalah bahwa kutipan dan kutipan tunggal singkatan bahasa Inggris dan tulisan posesif adalah karakter yang sama, jadi Anda harus menggunakan backslash (/) untuk menghindari apostrof.
'Tidakkah kamu lebih suka buku ini?' // "Tidakkah Anda lebih suka buku ini?" 'Apakah dia mengatakan/' halo/'?' // "Apakah dia bilang 'halo'?" "Apakah dia mengatakan/" halo/"?" // "Apakah dia bilang" halo "?"
Karakter multi-line
Secara default, string hanya dapat ditulis dalam satu baris, dan jika mereka dibagi menjadi beberapa baris, mereka akan melaporkan kesalahan.
// Kesalahan Sintakserror Tanpa Ditbitkan: Token Tidak Valid atau Tidak Terduga
'A
B
C';
Dalam ecmascript3, string harus ditulis dalam satu baris
Dalam ecmascript5, string dapat dibagi menjadi baris, setiap baris harus diakhiri dengan backslash (/)
Jika Anda ingin memulai baris baru dalam jumlah string langsung, Anda dapat menggunakan karakter Escape /n
// "onelongline" 'satu/long/line'/*"twolines"*/'two/nlines'
Escape Character
Dalam string JavaScript, backslash (/) memiliki kegunaan khusus. Menambahkan karakter setelah simbol backslash tidak mewakili makna literal mereka. Mereka digunakan untuk mewakili beberapa karakter khusus, yang disebut karakter melarikan diri
/0 byte kosong
/N
/Ttable
/B ruang
/r enter
/f Kertas umpan
// Slash
/'Kutipan tunggal
/"Kutipan Ganda
/xnn mewakili karakter dalam hexadecimal nn (n adalah 0-f), seperti /x41 mewakili 'a'
/unnnn dalam hexadecimal nnnn mewakili karakter unicode (n adalah 0-f), seperti /u03a3 mewakili karakter Yunani ε
Jika backslash digunakan sebelum karakter non-spesifik, backslash dihilangkan
'/A A"
Jika string perlu berisi backslash, maka backslash lain perlu ditambahkan sebelum backslash untuk melarikan diri
"Prev // Next" // "Prev / Next"
Fitur
String di JavaScript tidak dapat diubah. Setelah string dibuat, itu tidak akan pernah bisa diubah. Untuk mengubah string yang disimpan oleh variabel, hancurkan string asli, dan kemudian isi variabel dengan string lain yang berisi nilai baru
String baru dapat dibuat dengan menggabungkan string lain melalui operator +.
var lang = "java"; lang = lang + "skrip"; // 'javascript'
Proses aktual dari kode di atas adalah: pertama -tama buat string baru yang dapat menampung 10 karakter, dan kemudian mengisi string ini dengan 'java' dan 'skrip'. Langkah terakhir adalah menghancurkan string asli 'java' dan 'naskah', karena kedua string ini tidak berguna
Proses ini terjadi di latar belakang dan juga alasan mengapa string cuplikan lambat di beberapa browser lama (IE6), tetapi versi browser selanjutnya telah menyelesaikan masalah inefisiensi ini
Putar string
Ada dua cara untuk mengubah nilai menjadi string, tostring () dan string ()
[Catatan] Anda dapat menggunakan string kosong "" + nilai untuk mengonversi nilai menjadi string
tostring ()
Yang pertama adalah menggunakan metode tostring () yang hampir setiap nilai memiliki. Metode ini mengembalikan representasi string dari nilai yang sesuai
[Catatan] Tidak ditentukan dan nol tidak memiliki metode ini
undefined.tostring (); // error null.tostring (); // error true.tostring (); // 'true'false.tostring (); //' false'abc'.toString (); // 'abc'1.23.toString (); //' 1.23 '({); Objek] [1,2,3,4] .tostring (); // '1,2,3,4' (tanggal baru ()). Tostring (); // "Sun Jun 05 2016 10:04:53 GMT+0800 (waktu standar China)"/AB/i.tostring (); // '/AB/I'Rangkaian()
Anda dapat menggunakan string fungsi transformasi () ketika Anda tidak tahu apakah nilai yang ingin Anda konversi tidak terdefinisi atau nol.
String fungsi transformasi () mengikuti aturan berikut:
【1】 Jika nilainya nol, kembalikan 'null'; Jika nilainya tidak ditentukan, kembalikan 'tidak ditentukan'
【2】 Jika nilainya tidak nol atau tidak terdefinisi, hubungi metode tostring () dan mengembalikan nilai tipe asli
【3】 Jika objek yang dikembalikan dengan metode ToString (), maka panggil metode nilaiof () untuk mengembalikan nilai tipe asli. Jika objek yang dikembalikan dengan metode nilai () dikembalikan, kesalahan akan dilaporkan
// "3" string ({toString: function () {return 3;}}) // "[objek objek]" string ({value: function () {return 2;}}) // "3" string ({value: function () {return 2;}, toString: function () {{valueF: function () {return 2;Atribut panjang
Setiap instance dari tipe string memiliki atribut panjang, menunjukkan jumlah karakter dalam string. Karena string tidak dapat diubah, panjang string juga tidak dapat diubah.
Atribut panjang suatu string tidak disebutkan dalam loop for/in, juga tidak dapat dihapus melalui operator hapus.
[Catatan] Untuk String S, indeks karakter terakhir adalah S.Length - 1
var str = "test"; console.log (str.length); // 4str.length = 6; console.log (str. str.length); // "test", 4
Metode contoh
Metode umum objek
Jenis string adalah tipe pembungkus yang sesuai dengan string, mewarisi tiga metode metode umum objek ToString (), tolocalestring (), dan valueOf ().
【Tostring ()】
metode tostring () Mengembalikan nilai string asli dari string
【Tolocalestring ()】
metode tolocalestring () Mengembalikan nilai string asli dari string
【Nilai ()】
Metode ValueOf () Mengembalikan nilai string asli dari string
console.log ("tes" .valueof ()); // "test" console.log ("test" .toString ()); // "test" console.log ("test" .tolocalestring ()); // "tes"Metode Karakter Akses
Ada empat metode untuk mengakses karakter dalam string: chartat (), braket [], charcodeat () dan fromcharcode ().
【Chartat ()】
Metode ChARAT () menerima parameter berdasarkan posisi karakter 0 dan mengembalikan karakter pada posisi yang ditentukan. Ketika parameter kosong atau NAN, parameter default adalah 0; Saat parameter di luar jangkauan, string kosong dikembalikan
var str = "hello"; console.log (str.charat (1)); // econsole.log (str.charat (-1)); // '' console.log (str.charat (10)); // '' console.log (str.charat ()); // h console.log (str.charat (nan) (nan));
Metode chARAT () melibatkan konversi jenis implisit dari fungsi angka (). Jika dikonversi ke nilai numerik, string akan output sesuai dengan aturan di atas; Jika dikonversi ke NAN, karakter ke -0 akan menjadi output.
var str = "halo"; console.log (str.charat (true)); // 'e'console.log (str.charat (false)); //' h'console.log (str.charat ('abc')); // 'h'console.log (str.charat ({})); //' h'console.log (str.charat ({}))); // 'h'console.[CATATAN] Hasil x.charat (POS) dan x.substring (POS, POS+1), X.Substr (POS, 1), X.Slice (POS, POS+1) sama satu sama lain.
var str = "hello"; console.log (str.charat (1)); // 'e'console.log (str.substring (1,2)); //' e'console.log (str.slice (1,2)); // 'e'console.log (str.substr (1.1));
【Cabang】
ECMascript5 mendefinisikan cara lain untuk mengakses karakter, menggunakan braket persegi plus indeks numerik untuk mengakses karakter tertentu dalam string. Jika parameter di luar jangkauan atau NAN, output tidak ditentukan; Jika tidak ada parameter, kesalahan akan dilaporkan; Metode ini tidak memiliki konversi tipe implisit dari fungsi transformasi angka (), tetapi parameter dapat dikonversi ke nilai numerik ketika merupakan array nilai singular.
[Catatan] IE7-browser tidak mendukung
var str = "hello"; console.log (str [0]); // hconsole.log (str [[1]]); // econsole.log (str [false]); // tidak terdefinedConsole.log (stror [-1]); // tidak terdefinikasiconsole.log (stred [nan]);//////tidak terdefinisi (string) (string] (tidak terdefinikasi) (string] (string] (nan]);////tidak terdefinisi (string] (tidak terdefinikasi) (nan]);////tidak terdefinisi (string] (nan]);////tidak terdefinikasi.
【Charcodeat ()】
Metode charcodeat () mirip dengan metode chARAT (), yang menerima parameter berdasarkan posisi karakter 0, tetapi mengembalikan penyandian unicode 16-bit dari karakter yang ditentukan. Nilai pengembalian adalah bilangan bulat 16-bit, antara 0-65535, yaitu antara 0x0000-0xffff
Ketika parameter kosong atau NAN, parameter default adalah 0; Ketika parameter di luar jangkauan, NAN dikembalikan.
var str = "halo"; console.log (str.charcodeat ()); // 104console.log (str.charcodeat (0)); // 104console.log (str.charcodeat (1)); // 1 01console.log (str.charcodeat (-1)); // nanconsole.log (str.charcodeat (10)); // nanconsole.log (str.charcodeat (nan)); // 104
Demikian pula, metode charcodeat () melibatkan konversi tipe implisit dari fungsi angka (). Jika dikonversi ke nilai numerik, nilai yang sesuai akan output sesuai dengan aturan di atas; Jika dikonversi ke NAN, pengkodean karakter dari karakter ke -0 akan menjadi output.
var str = "halo"; console.log (str.charcodeat (true)); // 101console.log (str.charcodeat (false)); // 104console.log (st r.charcodeat ('abc')); // 104console.log (str.charcodeat ({})); // 104console.log (str.charcodeat ([2])); // l08【Fromcharcode ()】
Konstruktor string itu sendiri memiliki metode statis: fromCharCode (). Tugas metode ini adalah menerima satu atau lebih pengkodean karakter dan kemudian mengubahnya menjadi string. Pada dasarnya, metode ini melakukan operasi yang berlawanan dari metode instance charcodeat (). Jika parameternya kosong dan NAN, string kosong dikembalikan; Jika parameter melebihi kisaran 0-65535, karakter output tidak terkendali.
Console.log (String.FromCharCode (104.101.108.108.111)); // 'Hello'Console.log (String.FromCharCode (0x6211.0x662f, 0x5c0f, 0x706b, 0x67f4)); ///' I am a a little match'console.log (string.fromCharCode ()); // '' console.log (string.fromCharCode (nan)); // '' console.log (string.fromCharCode (-1)); console.log (string.fromCharCode (65560));
Jika karakter mengambil empat byte, itu perlu dibagi menjadi dua karakter.
console.log (String.FromCharCode (0xD842, 0xDFB7)); // "�line"
Jahitan string
Ada dua metode untuk jahitan string: concat () dan plus tanda +
【Concat ()】
Metode concat () digunakan untuk menyambungkan satu atau lebih string dan mengembalikan string baru yang diperoleh dengan menyambung, sedangkan string asli tidak berubah. Jika parameter (kecuali parameter pertama) bukan string, secara implisit dikonversi ke string melalui metode string (), dan kemudian splicing string dilakukan.
var stringValue = 'hello'; var result = stringValue.concat ('world', '!'); console.log (hasil); // 'halo world!' console.log (stringValue); // 'halo'[Catatan] Parameter pertama hanya bisa menjadi string. Jika jenis lain (kecuali array), kesalahan akan dilaporkan.
(1) .concat ('2'); // Laporkan kesalahan
(true) .concat ('false'); // Laporkan kesalahan
({}). Concat ('ABC'); // Laporkan kesalahan
[Catatan] Karena array juga memiliki metode CONDAT (), parameter akan menentukan cara mengonversi sesuai dengan apakah parameter yang muncul pertama kali adalah array atau string.
'1,2,3,'. Concat ([4,5]); // '1,2,3,4,5'
[1,2,3] .concat (', 4,5'); // [1, 2, 3, ", 4,5"]
【Plus Operator (+)】
Meskipun concat () adalah metode yang secara khusus digunakan untuk menyambungkan string, lebih banyak penggunaan operator plus (+) dalam praktiknya. Menggunakan operator plus seringkali lebih sederhana dari concat ()
var stringValue = 'hello'; console.log (stringValue.concat ('world', '!')); // 'halo world!' console.log (stringValue + 'world' + '!'); // 'hello world!'[Catatan] Jahitan string dilakukan ketika salah satu operan adalah string, atau jika objek dikonversi ke string
1 + 2; // 3'1 ' + 2; //' 12'var o = {valueof: function () {return '1';}}; o + 2; // '12'var o = {valueOf: function () {return 1;}}; o + 2; // 3Buat substring
Ada tiga metode untuk membuat substring: slice (), substr () dan substring ().
【mengiris()】
Metode Slice (Start, End) membutuhkan dua parameter mulai dan akhir, yang mengembalikan substring pada string ini dari karakter pada posisi awal untuk (tetapi tidak mengandung) karakter pada posisi akhir; Jika akhir tidak terdefinisi atau tidak ada, ia mengembalikan semua karakter dari posisi awal hingga akhir string
Jika Start adalah angka negatif, mulai = maks (panjang + mulai, 0)
Jika ujung adalah angka negatif, end = maks (panjang + ujung, 0)
Mulai dan Akhir tidak dapat bertukar posisi
var stringValue = 'hello world'; console.log (stringValue.slice ()); // 'hello world'console.log (stringValue.slice (2)); //' llo world'console.log (stringValue.slice (2, tidak direfinisi)); ///llo world'console.log (StringValue.Slice (2, -5)); // 'llo 'Console.log (StringValue.Slice (2, -20)); //' 'Console.log (StringValue.Slice (20)); //' 'Console.log (StringValue.Slice (-2,2)); //' 'Console.Log (StringValue.Slice (-2, -2, -2, -2)); console.log (stringValue.slice (-2,20)); // 'ld'console.log (stringValue.slice (-20,2)); //' he'console.log (stringvalue.slice (-20, -2)); // 'Halo wor'
Metode SLICE () melibatkan konversi jenis fungsi transformasi angka (). Ketika start dikonversi ke NAN, setara dengan mulai = 0; Saat ujung dikonversi ke NAN (kecuali ujung tidak ditentukan), string kosong adalah output
var stringValue = 'hello world'; console.log (stringValue.slice (nan)); // 'halo world'console.log (stringValue.slice (0, nan)); // '' console.log (stringValue.slice (true, [3])); // 'el'console.log (stringValue.slice (null, tidak disusun)); //' hello world'console.log world'console.log (stringValue.slice ('2', [5])); // 'llo'【Substring ()】
Metode substring (start, end) membutuhkan dua parameter start dan end, yang mengembalikan substring pada string ini dari karakter pada posisi awal untuk (tetapi tidak mengandung) karakter pada posisi akhir; Jika akhir tidak terdefinisi atau tidak ada, ia mengembalikan semua karakter dari posisi awal hingga akhir string
Jika salah satu parameter adalah NAN atau negatif, itu diganti dengan 0
Jika ada parameter yang lebih besar dari panjang string, itu diganti dengan panjang string
Jika awal lebih besar dari akhir, maka nilainya ditukar
var stringValue = 'Hello world'; console.log (stringValue.substring ()); // 'halo world'console.log (stringValue.substring (2)); //' llo world'console.log (stringValue.substring (2, tidak dijelaskan));///llo world'console.log (stringValue.substring (20)); // '' console.log (stringValue.substring (-2,2)); // 'he'console.log (stringValue.S Ubstring (nan, 2)); // 'he'console.log (stringValue.substring (-2,20)); //' he'console.log (stringValue.substring (-2,20)); // 'halo world'console.log (stringValue.substring (3,2)); // 'l'Console.log (StringValue.Substring (3, Nan)); //' Hel 'Console.log (StringValue.SubString (-20,2)); //' he'console.log (stringValue.substring (-20, -2)); // '' '' '' '
Demikian pula, metode substring () juga melibatkan konversi jenis fungsi transformasi angka () implisit
var stringValue = 'Hello world'; console.log (stringValue.substring (true, [3])); // 'el'console.log (stringValue.substring (null, tidak terdefinisi)); //' halo world'console.log (stringValue.substring (null, null, null, tidak terdefinisi); world'console.log (stringValue.substring ({})); // 'halo world'console.log (stringValue.substring (' 2 ', [5])); //' llo '【Substr ()】
Metode Substr (Start, End) membutuhkan dua parameter mulai dan akhir. End mewakili jumlah karakter dalam substring yang dikembalikan; Metode ini mengembalikan substring karakter akhir yang dimulai dari karakter pada posisi awal dalam string ini; Jika akhir tidak terdefinisi atau tidak ada, ia mengembalikan semua karakter dari posisi awal hingga akhir string
Jika Start adalah angka negatif, mulai = maks (panjang + mulai, 0)
Jika Start adalah NAN, setara dengan mulai = 0
Jika ujung adalah angka negatif atau nan, end = 0, sehingga string kosong dikembalikan
Mulai dan Akhir tidak dapat bertukar posisi
[Catatan] Metode ini bukan standar ecmascript dan telah sudah usang
[Catatan] IE8-Browser memiliki masalah dengan menangani situasi di mana nilai-nilai negatif diteruskan ke substr (), ia mengembalikan string asli
var stringValue = 'hello world'; console.log (stringValue.substr ()); // 'hello world'console.log (stringValue.substr (2)); //' llo world'console.log (stringValue.substr (2, tidak didefinisikan)); ///llo world'console.log (stringValue.substr (2, nan)); // '' console.log (stringValue.substr (nan, 2)); // 'he'console.log (stringvalue.substr (20)); //' 'console.log (stringv alue.substr (-2,3)); // 'ld'console.log (stringValue.substr (-2,20)); //' ld'console.log (stringValue.substr (-20,2)); // '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'Yang ”yang” ”yang”' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'Yang ”yang” ”yang”' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'Yang ”yang” ”yang”' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'Yang ”yang” ”yang”' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' console.log (stringValue.substr (2,5)); // llo w
Demikian pula, metode substr () juga melibatkan konversi jenis fungsi transformasi angka () implisit
var stringValue = 'Hello world'; console.log (stringValue.substr (true, [3])); // 'el'console.log (stringValue.substr (null, undefined)); //' hello world'console.log (stringValue.substr ({});/hello hello world'console.log (stringValue.substr ('2', [5])); // 'llo w'Posisi string
Ada dua cara untuk menemukan lokasi substring dari string: indexof () dan lastIndexof ()
【Indexof ()】
Metode IndexOf (SearchString, Start) menerima dua parameter: SearchString dan Mulai, mengembalikan lokasi tempat pencarian pertama kali muncul, dan jika tidak ditemukan, ia mengembalikan -1
Metode ini secara implisit memanggil fungsi transformasi string () untuk mengonversi nilai pencarian non-string menjadi string; secara implisit memanggil fungsi transformasi angka () untuk mengonversi nilai awal non-numerik (kecuali tidak terdefinisi) ke nilai numerik ke nilai numerik
SearchString mewakili substring yang akan dicari; Mulai mewakili posisi awal pencarian. Jika parameter diabaikan atau parameter tidak ditentukan, NAN atau negatif, mulai = 0
var string = 'halo dunia dunia '; console.log (string.indexof (' ld ')); // 9console.log (string.indexof (' ld ', tidak terdefinisi)); // 9console.log (string.indexof (' ld ', nan)); // 9console.log (string.indexof (' ld ' ring.indexof ('ld',-1)); // 9console.log (string.indexof ('ld',-1)); // 9console.log (string.indexof ( 'ld',-1)); // 9console.log (string.indexof ('ld',-1)); // 9console.log (string.indexof ('ld',-1)); // 9 console.log (string.indexof ('ld', 10)); // 15console.log (string.indexof ('ld', [10])); // 15console.log (string.index Dari ('true', [10])); //-1console.log (string.indexof (false, [10])); //-1console.log (string.indexof (false, [10])); //-1【LastIndexof ()】
Metode LastIndexof (SearchString, Start) menerima dua parameter: SearchString dan Start, dan mengembalikan kapan terakhir kali pencarian muncul. Jika tidak ditemukan, ia kembali -1
Demikian pula, metode ini secara implisit memanggil fungsi transformasi string () untuk mengonversi nilai pencarian non-string menjadi string; Secara implisit memanggil fungsi transformasi angka () untuk mengonversi nilai awal non-numerik (kecuali tidak terdefinisi) menjadi nilai numerik.
SearchString mewakili substring yang akan dicari; Mulai mewakili posisi awal pencarian. Jika parameter diabaikan atau parameter tidak ditentukan atau NAN, mulai = panjang - 1
[Catatan] Tidak seperti metode indexof (), jika start negatif, metode ini kembali -1
var string = 'hello world world';console.log(string.indexOf('ld'));//9console.log(string.indexOf('ld',undefined));//9console.log(string.indexOf('ld',NaN));//9console.log(string.indexOf('ld',-1));//-1 console.log (string.indexof ('ld', 10)); // 15console.log (string.indexof ('ld', [10])); // 15console.log (string.index Dari ('true', [10])); //-1console.log (string.indexof (false, [10])); //-1console.log (string.indexof (false, [10])); //-1【Tips】 Temukan semua substring yang memenuhi kriteria string
Semua substring pencocokan dapat ditemukan dengan melingkar untuk memanggil indexOf () atau lastIndexOf ()
fungsi allIndexof (str, value) {var result = []; var pos = str.indexof (value); while (pos> -1) {result.push (pos); pos = str.indexof (value, pos+value.length);} hasil pengembalian;} console.log (allIndexof ('hellhellhell', 'll')); // [2,7,12]【memangkas()】
Ecmascript5 mendefinisikan metode trim () untuk semua string. Metode ini membuat salinan string, menghapus semua karakter kosong di awalan dan akhiran, dan mengembalikan hasilnya
Karena metode trim () mengembalikan salinan string, ruang awalan dan sufiks dalam string asli akan tetap tidak berubah
[Catatan] IE8-browser tidak mendukung
var string = 'hello world'; console.log (string.trim ()); // 'hello world'console.log (string); //' hello world '
Karakter whitespace tidak hanya mencakup spasi, tetapi juga karakter tab (/t), garis istirahat (/n) dan karakter carriage return (/r)
'/r/nabc /t'.trim () //' abc '
Selain itu, Firefox, Safari, dan Webkit juga mendukung TrimRight () non-standar untuk menghapus karakter whitespace di ujung string
var string = 'hello world'; console.log (string.trimright ()); // 'hello world';
【Tips】 Gunakan trim () untuk menentukan apakah karakter yang dimasukkan kosong
if (useName.trim (). length) {alert ('benar');} else {alert ('error');}【Tips】 Simulasi trim () dengan ekspresi reguler
fungsi fntrim (str) {return str.replace (/^/s+|/s+$/, '')} console.log (fntrim ('hello world')); // 'hello world'Konversi kasus
Ada empat metode yang terlibat dalam konversi case string dalam ecmascript: tolowercase (), tolocalelowercase (), touppercase (), dan tolocaleuppercase ()
Tolowercase () dan Touppercase () adalah dua metode klasik, dipinjam dari metode nama yang sama di java.lang.string. Metode TolocaleLowerCase () dan Tolocaleuppercase () diimplementasikan untuk wilayah tertentu. Untuk beberapa daerah, metode untuk daerah sama dengan hasil yang diperoleh dengan metode umum mereka. Namun, beberapa bahasa (seperti Turki) akan menerapkan aturan khusus untuk konversi kasus Unicode. Pada saat ini, metode untuk daerah harus digunakan untuk memastikan konversi yang benar tercapai.
【Touppercase ()】
Metode ToUppercase () Mengubah string menjadi huruf besar
【Tolowercase ()】
Metode TolowerCase () Mengubah string menjadi huruf kecil
【Tolocaleuppercase ()】
Metode Tolocaleuppercase () Mengubah string menjadi huruf besar (untuk wilayah)
【Tolocalelowercase ()】
Metode TolocalelowerCase () Mengubah string ke huruf kecil (untuk wilayah)
[Catatan] Lebih aman menggunakan metode khusus wilayah tanpa mengetahui lokal mana kode Anda akan berjalan.
var string = 'hello world'; console.log (string.tolowercase ()); // hello worldconsole.log (string.tolocalelowercase ()); // halo worldconsole.log (string.touppercase ()); // halo worldconsole.log (string.tolocaleupcase ());/hello worldconsole.log (string.tolocaleupsase ());
4 metode ini tidak mendukung string () Konversi tipe implisit, hanya mendukung tipe string
(true) .tolowercase (); // Laporkan kesalahan
(2) .TolocalelowerCase (); // Laporkan kesalahan
({}). Touppercase (); // Laporkan kesalahan
([]). Tolocaleuppercase (); // Laporkan kesalahan
[Catatan] Metode konversi kasus dapat digunakan secara terus menerus
var string = 'hello world'; console.log ((string.touppercase ()). tolowercase ()); // halo dunia
【Localecompare ()】
Metode localecompare () digunakan untuk membandingkan dua string, mengikuti aturan berikut
[1] Jika string harus diberi peringkat sebelum parameter string dalam alfabet, angka negatif dikembalikan (kebanyakan -1)
【2】 Jika string sama dengan parameter string, kembalikan 0
【3】 Jika string harus ditempatkan setelah parameter string dalam alfabet, angka positif akan dikembalikan (dalam kebanyakan kasus 1)
var stringValue = 'yellow'; console.log (StringValue.LocaleCompare ('Brick')); // 1 'y'> 'b'console.log (stringValue.LocaleCompare (' yellow '); // 0' yellow '==' yellow'console.log (stringvalue.locare (zooCare '))))))))))))))))))))))))))))))))))))))))))) (yellow'console. 'Kebun Binatang'[Catatan] Meskipun huruf kapital dalam alfabet ada di depan huruf kecil, jadi huruf kapital <huruf kecil. Tetapi metode localecompare () akan memperhitungkan situasi penyortiran bahasa alami dan peringkat 'b' di depan 'a'
console.log ('b'.localecompare (' a ')); // 1console.log (' b '>' a '); // falseconsole.log (' b'.localecompare ('a')); // 1console.log ('b'> 'a'); //Di atas adalah pengetahuan yang relevan tentang penjelasan terperinci dari jenis string string dari sistem tipe JavaScript yang diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!