En iyi yol, düzenli bir ifade, üçlü bir operatör ve yerleşik .test()
dizeler yöntemi kullanmaktır.
Sizi Google'a normal ifadelerin giriş ve çıkışları ile dizeler için test yöntemini (bulmak kolay) bırakıyorum, ancak burada değişkeninizi test etmek için kullanacağız.
/[a-z]/i.test(your-character-here)
Bu, karakterinizin normal ifadedeki karakter kümesiyle eşleşip eşleşmediğine bağlı olarak TRUE of FALSE değerini döndürür. Düzenli ifademiz, harfleri /[a-z]/
ne olursa olsun tüm harfleri kontrol eder .i
bayrak .
Yani, temel bir test şöyle olacaktır:
var theAnswer = "";
if (/[a-z]/i.test(your-character-here)) {
theAnswer = "It's a letter."
}
Şimdi büyük veya küçük harf olup olmadığını belirlememiz gerekiyor. Bu nedenle, i
bayrağı normal ifademizden kaldırırsak, yukarıdaki kodumuz az küçük harfleri test edecektir. İlk ifademize başka bir if
ifade yapıştırırsak , AZ'yi kullanarak büyük harfleri de test edebiliriz. Bunun gibi:else
if
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.";
}
Ve bir harf olmasa bile, başka bir son ifade ekleyebiliriz:
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."
}
Yukarıdaki kod işe yarayacaktır. Ama biraz çirkin. Bunun yerine, if-else
yukarıdaki ifadelerimizi değiştirmek için bir "üçlü operatör" kullanabiliriz . Üçlü operatörler bir kodlamanın kısaca basit yoludur if-else
. Sözdizimi kolaydır:
(statement-to-be-evaluated) ? (code-if-true) : (code-if-false)
Bunlar da iç içe yerleştirilebilir. Yani bir işlev şöyle görünebilir:
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);
}
Yukarıdaki kod iyi görünüyor, ancak pek işe yaramayacak, çünkü karakterimiz theAnswer
küçük harfle yazılırsa büyük harf için test edildiğinde "" olarak ayarlanır, bu nedenle bunları iç içe yerleştirelim:
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);
}
Harika olacak! Ancak değişkeni ayarlamak theAnswer
ve sonra döndürmek için iki ayrı satıra gerek yoktur . Ve kullanmalıyız let
ve const
bunun yerine var
(neden olduğundan emin değilseniz bunlara bakın). Bu değişiklikleri yaptıktan sonra:
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."));
}
Sonunda zarif, özlü bir kod parçası ile karşılaşıyoruz. ;)