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, ibayrağı normal ifademizden kaldırırsak, yukarıdaki kodumuz az küçük harfleri test edecektir. İlk ifademize başka bir ififade yapıştırırsak , AZ'yi kullanarak büyük harfleri de test edebiliriz. Bunun gibi:elseif
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-elseyukarı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 theAnswerküçü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 theAnswerve sonra döndürmek için iki ayrı satıra gerek yoktur . Ve kullanmalıyız letve constbunun 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. ;)