前情提要:
由於常常碰到各種的數字格式,這裡整理多種的情境


1. 連續數字

格式:str = ‘總計TWD$650.00’

最終想要的數字:650

正規表達式

現在使用的正規表達式為 \d+,它將匹配一個或多個連續數字。在取得匹配結果後,我們使用 parseInt 函式將其轉換為整數型別,並得到 650。

const str = '總計TWD$650.00';
const regex = /\d+/; // 匹配整數
const result = str.match(regex);

if (result && result.length >= 1) {
  const integerValue = parseInt(result[0], 10);
  console.log(integerValue);
} else {
  console.log("未找到整數部分或格式不符合預期。");
}

2. 不連續的數字串起來

格式:str = ‘NT$1,650’

最終想要的數字:1650

正規表達式

let str1 = 'NT$1,650';
let str2 = 'NT$8,000';

const extractNumber = (str) => {
  // 使用正規表達式取出數字部分
  const numberPattern = /\d+/g;
  const matches = str.match(numberPattern);

  // 將匹配到的數字陣列轉換成字串
  const result = matches ? matches.join('') : '';

  return result;
};

console.log(extractNumber(str1)); // 輸出:1650
console.log(extractNumber(str2)); // 輸出:8000

3. 多個字串間的空格,一次取代

格式:str = ‘ Pro 雙效版 極致黑 ‘
最終想要的數字:Pro 雙效版極致黑

正規表達式

用 replace 一次把所有的空格都刪掉

const itemElements = document.querySelectorAll('.cart-items-wrapper .cart-item')
const products = [...itemElements].map((item) => {
  
  // 下面這一段
  const title = item.querySelector('.description').textContent.replace(/\s/g, '')
})