前情提要
"判断使用者输入"的方法
如果要给使用者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函数
// 使用 localeCompare 进行字符串比较,忽略大小写if (userInput.localeCompare("all", undefined, { sensitivity: 'base' }) === 0) { console.log("用户输入是 'all' 或 'ALL'");} else { console.log("用户输入不是 'all' 或 'ALL'");}
这个满特别的。
includes与阵列
const validInputs = ['all', 'ALL'];if (validInputs.includes(userInput.toLowerCase())) { console.log("用户输入是 'all' 或 'ALL'");} else { console.log("用户输入不是 'all' 或 'ALL'");}
这个满有趣的,判断过关数量少的话,写进阵列里面,用includes感觉挺聪明。
以上,这就是这次的JS笔记。
其中GPT还提到了一个indexOF,但我觉得算是重複了,就不列入。
欢迎有志人士提供有趣的其他做法!学食神搞在一起全部做成撒尿牛丸也是OK的哈哈哈哈XD