正規表示式中使用變數擷取某字串前後內容

yuxingga發表於2020-12-14

當正規表示式中要使用es6的模板字串時,不能用reg=/^$/這種形式,可以透過new RegExp()的方式實現。

例如“¥100/年”,要達到“¥100/年”的效果,需要擷取數字前的部分和數字後的部分。可以先擷取到字串中的數字部分作為變數,再分別擷取變數前的(包括該變數)和變數後的(不包括該變數)部分。

// 數字及數字前面部分  “¥100”
    num (str) {
      return str.match(new RegExp(`\\S*${str.replace(/[^0-9]/ig, '')}`))[0]
    },
    // 數字後面部分  “/年”
    text (str) {
      return str.match(new RegExp(`${str.replace(/[^0-9]/ig, '')}(\\S*)`))[1]
    }

相關文章