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 i
benderanya.
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 i
flag dari ekspresi reguler kita, maka kode kita di atas akan menguji huruf kecil az. Dan jika kita menempel if
pernyataan lain dalam pernyataan else
pertama if
kita, 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-else
pernyataan 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, theAnswer
disetel 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 theAnswer
dan kemudian mengembalikannya. Dan kita harus menggunakan let
dan const
bukannya 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. ;)