iT邦幫忙

0

JS筆記-五種方法判斷input是否為"ALL"?

  • 分享至 

  • xImage
  •  

前情提要

"判斷使用者輸入"的方法

如果要給使用者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


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
rian1995
iT邦新手 5 級 ‧ 2024-03-25 15:49:57
let acceptAns ={all:1,ALL:1};
if(acceptAns[userInput]){
    console.log("用户输入是 'all' 或 'ALL'");
}

用Object當作答案 有點類似map的key-value方式去比較

我要留言

立即登入留言