Cách tốt nhất là sử dụng một biểu thức chính quy, toán tử ternary và .test()phương thức dựng sẵn cho các chuỗi.
Tôi đưa bạn đến Google các phần mở rộng của biểu thức chính quy và phương thức kiểm tra chuỗi (chúng rất dễ tìm), nhưng ở đây chúng tôi sẽ sử dụng nó để kiểm tra biến của bạn.
/[a-z]/i.test(your-character-here)
Điều này sẽ trả về TRUE of FALSE dựa trên việc nhân vật của bạn có khớp với ký tự được đặt trong biểu thức chính quy hay không. Biểu thức chính quy của chúng tôi kiểm tra tất cả các chữ cái az /[a-z]/bất kể trường hợp của chúng nhờ icờ.
Vì vậy, một bài kiểm tra cơ bản sẽ là:
var theAnswer = "";
if (/[a-z]/i.test(your-character-here)) {
theAnswer = "It's a letter."
}
Bây giờ chúng ta cần xác định xem đó là chữ hoa hay chữ thường. Vì vậy, nếu chúng ta xóa icờ khỏi biểu thức chính quy, thì mã của chúng tôi ở trên sẽ kiểm tra các chữ cái viết thường az. Và nếu chúng ta dính một iftuyên bố khác trong tuyên bố elseđầu tiên của ifmình, chúng ta cũng có thể kiểm tra chữ hoa bằng cách sử dụng AZ. Như thế này:
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.";
}
Và chỉ trong trường hợp đó không phải là một lá thư, chúng ta có thể thêm một tuyên bố cuối cùng khác:
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."
}
Các mã trên sẽ làm việc. Nhưng nó hơi xấu. Thay vào đó, chúng ta có thể sử dụng một "toán tử ternary" để thay thế các if-elsetuyên bố của chúng tôi ở trên. Toán tử ternary chỉ là cách viết mã đơn giản if-else. Cú pháp rất dễ:
(statement-to-be-evaluated) ? (code-if-true) : (code-if-false)
Và những cái này cũng có thể được lồng vào nhau. Vì vậy, một chức năng có thể trông giống như:
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);
}
Đoạn mã trên có vẻ tốt, nhưng sẽ không hoạt động tốt, vì nếu ký tự của chúng ta là chữ thường, theAnswerđược đặt thành "" khi nó kiểm tra chữ hoa, vì vậy hãy lồng chúng:
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);
}
Điều đó sẽ làm việc tuyệt vời! Nhưng không cần phải có hai dòng riêng biệt để đặt biến theAnswervà sau đó trả về nó. Và chúng ta nên sử dụng letvà consthơn là var(tìm kiếm nếu bạn không chắc tại sao). Khi chúng tôi thực hiện những thay đổi đó:
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."));
}
Và chúng tôi kết thúc với một đoạn mã thanh lịch, súc tích. ;)