如果要給使用者prompt,就勢必會用if判斷輸入的內容。
假設想判斷使用者是否輸入all(如果是大寫也可以)這樣子的條件式有哪幾種呢?
透過GPT我整理了五種方法,最直覺的想法就是透過「或」。
或正則好像也滿直覺(?
以下讓我們欣賞不同的做法。
if (userInput.toLowerCase() === "all") {
console.log("用户输入是 'all' 或 'ALL'");
} else {
console.log("用户输入不是 'all' 或 'ALL'");
}
先轉換成小寫這樣就可以確認了。
const regex = /^all$/i; // 'i' 表示不区分大小写
if (regex.test(userInput)) {
console.log("用户输入是 'all' 或 'ALL'");
} else {
console.log("用户输入不是 'all' 或 'ALL'");
}
if (userInput === 'all' || userInput === 'ALL') {
console.log("用户输入是 'all' 或 'ALL'");
} else {
console.log("用户输入不是 'all' 或 'ALL'");
}
// 使用 localeCompare 进行字符串比较,忽略大小写
if (userInput.localeCompare("all", undefined, { sensitivity: 'base' }) === 0) {
console.log("用户输入是 'all' 或 'ALL'");
} else {
console.log("用户输入不是 'all' 或 'ALL'");
}
這個滿特別的。
const validInputs = ['all', 'ALL'];
if (validInputs.includes(userInput.toLowerCase())) {
console.log("用户输入是 'all' 或 'ALL'");
} else {
console.log("用户输入不是 'all' 或 'ALL'");
}
這個滿有趣的,判斷過關數量少的話,寫進陣列裡面,用includes感覺挺聰明。
以上,這就是這次的JS筆記。
其中GPT還提到了一個indexOF,但我覺得算是重複了,就不列入。
歡迎有志人士提供有趣的其他做法!學食神搞在一起全部做成撒尿牛丸也是OK的哈哈哈哈XD
let acceptAns ={all:1,ALL:1};
if(acceptAns[userInput]){
console.log("用户输入是 'all' 或 'ALL'");
}
用Object當作答案 有點類似map的key-value方式去比較