Cara terbaik adalah dengan menggunakan ekspresi reguler, operator ternary, dan .test()metode bawaan untuk string.
Saya meninggalkan Anda di Google seluk beluk ekspresi reguler dan metode pengujian untuk string (mudah ditemukan), tetapi di sini kami akan menggunakannya untuk menguji variabel Anda.
/[a-z]/i.test(your-character-here)
Ini akan mengembalikan TRUE of FALSE berdasarkan pada apakah karakter Anda cocok atau tidak dengan karakter yang ditetapkan dalam ekspresi reguler. Ekspresi reguler kami memeriksa semua huruf az /[a-z]/terlepas dari kasusnya berkat ibenderanya.
Jadi, tes dasar adalah:
var theAnswer = "";
if (/[a-z]/i.test(your-character-here)) {
theAnswer = "It's a letter."
}
Sekarang kita perlu menentukan apakah huruf besar atau kecil. Jadi, jika kita menghapus iflag dari ekspresi reguler kita, maka kode kita di atas akan menguji huruf kecil az. Dan jika kita menempel ifpernyataan lain dalam pernyataan elsepertama ifkita, kita dapat menguji huruf besar juga dengan menggunakan AZ. Seperti ini:
var theAnswer = "";
if (/[a-z]/.test(your-character-here)) {
theAnswer = "It's a lower case letter."
} else if (/[A-Z]/.test(your-character-here)) {
theAnswer = "It's an upper case letter.";
}
Dan kalau-kalau itu bukan surat, kita bisa menambahkan pernyataan final lain:
var theAnswer = "";
if (/[a-z]/.test(your-character-here)) {
theAnswer = "It's a lower case letter."
} else if (/[A-Z]/.test(your-character-here)) {
theAnswer = "It's an upper case letter.";
} else {
theAnswer = "It's not a letter."
}
Kode di atas akan berfungsi. Tapi itu agak jelek. Sebagai gantinya, kami dapat menggunakan "operator ternary" untuk menggantikan if-elsepernyataan kami di atas. Operator ternary hanyalah cara sederhana untuk mengkode suatu if-else. Sintaksnya mudah:
(statement-to-be-evaluated) ? (code-if-true) : (code-if-false)
Dan ini juga bisa saling bersarang. Jadi fungsi mungkin terlihat seperti:
var theAnswer = "";
function whichCase(theLetter) {
theAnswer = /[a-z]/.test(theLetter) ? "It's lower case." : "";
theAnswer = /[A-Z]/.test(theLetter) ? "It's upper case." : "";
return(theAnswer);
}
Kode di atas terlihat bagus, tetapi tidak akan bekerja dengan baik, karena jika karakter kita adalah huruf kecil, theAnswerdisetel ke "" ketika diuji untuk huruf besar, jadi mari kita buat sarangnya:
var theAnswer = "";
function whichCase(theLetter) {
theAnswer = /[a-z]/.test(theLetter) ? "It's lower case." : (/[A-Z]/.test(theLetter) ? "It's upper case." : "It's not a letter.");
return(theAnswer);
}
Itu akan berhasil! Tetapi tidak perlu memiliki dua baris terpisah untuk mengatur variabel theAnswerdan kemudian mengembalikannya. Dan kita harus menggunakan letdan constbukannya var(cari itu jika Anda tidak yakin mengapa). Setelah kami melakukan perubahan itu:
function whichCase(theLetter) {
return(/[A-Z]/.test(theLetter) ? "It's upper case." : (/[a-z]/.test(theLetter) ? "It's lower case." : "It's not a letter."));
}
Dan kita berakhir dengan sepotong kode yang elegan dan ringkas. ;)