Rumah > Artikel > hujung hadapan web > Bagaimana untuk menentukan sama ada dua rentetan adalah sama dalam pengetahuan JavaScript_Basic
Tukar semua nilai input pengguna kepada huruf besar (atau huruf kecil) dahulu, dan kemudian bandingkan:
var name = document.form1.txtUserName.value.toLowerCase(); if(name == "urname") { // statements go here. }
JavaScript mempunyai dua operator kesamaan. Satu adalah serasi sepenuhnya ke belakang, standard "==" Jika kedua-dua jenis operan tidak konsisten, ia akan melakukan penukaran jenis secara automatik pada operan pada satu ketika Pertimbangkan pernyataan tugasan berikut:
var strA = "i love you!"; var strB = new String("i love you!");
Kedua-dua pembolehubah ini mengandungi jujukan aksara yang sama, tetapi mempunyai jenis data yang berbeza Yang pertama ialah rentetan dan yang kedua ialah objek Apabila menggunakan operator "==", JavaScript akan mencuba pelbagai penilaian untuk mengesan sama ada kedua-duanya berada dalam keadaan yang sama turutan sama dalam beberapa kes. Jadi ungkapan berikut dinilai kepada benar: strA == strB.
Pengendali kedua ialah "ketat" "===", yang tidak begitu memaafkan apabila menilai dan tidak melakukan penukaran jenis. Jadi ungkapan strA === strB menilai palsu, walaupun kedua-dua pembolehubah memegang nilai yang sama.
Kadangkala logik kod memerlukan anda untuk menentukan sama ada dua nilai tidak sama. Terdapat dua pilihan di sini: "!=" dan ketat "!==" Hubungan mereka serupa dengan "==" dan ". ===".
Perbincangan:
"==" dan "!=" akan cuba sedaya upaya untuk mencari nilai yang sepadan semasa menilai, tetapi anda mungkin masih mahu melakukan penukaran jenis eksplisit sebelum membandingkan untuk "membantu" mereka melakukan tugas mereka. Contohnya, jika anda ingin menentukan sama ada nilai input (rentetan) pengguna adalah sama dengan nombor, anda boleh membenarkan "==" membantu anda melengkapkan penukaran jenis:
if(document.form1.txtAge.value == someNumericVar) { ... }
Anda juga boleh menukar terlebih dahulu:
if(parseInt(document.form1.txtAge.value) == someNumericVar) { ... }
Jika anda lebih terbiasa dengan bahasa pengaturcaraan yang ditaip kuat (seperti C#, Java, dll.), maka anda boleh meneruskan tabiat anda (penukaran jenis) di sini, yang juga akan meningkatkan kebolehbacaan program.
Terdapat satu perkara yang perlu anda perhatikan, iaitu tetapan serantau komputer. Jika anda membandingkan rentetan dengan "7cd5b91af30fe2437a6260ab1429d7ed", maka JavaScript membandingkannya sebagai Unicode, tetapi jelas orang yang melayari web tidak membaca teks sebagai Unicode :) Contohnya dalam bahasa Sepanyol, Menurut pengisihan tradisional, "ch " akan diisih sebagai aksara antara "c" dan "d". localeCompare() menyediakan cara untuk menggunakan pengumpulan aksara tempat lalai.
var strings; // 要排序的字符串数组,假设已经得到初始化 strings.sort(function(a,b) { return a.localeCompare(b) }); // 调用sort()方法进行排序