我正在寻找一个根据URL的最后一部分返回HTML class的函数:

const currentPage = this.$route.path
const pinkPages = [ '/', '/forgot-pass', '/reset-pass' ]
if (pinkPages.indexOf(currentPage) > -1) return 'footer-pink'


它工作正常,问题在于/reset-pass实际上最后有更多字符。例如,/reset-pass/123

如何使URL为footer-pink/reset-pass/1234或类似的其他模式时函数返回/reset-pass/abcd

最佳答案

也许您想使用正则表达式尝试与当前页面匹配?

console.log(matchWith('/forgot-pass'));
console.log(matchWith('/reset-pass/'));
console.log(matchWith('/reset-pass/toto'));
console.log(matchWith('/another'));

function matchWith(page) {
  var regex = /(^\/$|\/forgot-pass$|\/reset-pass\/(.*))/
    if(page.match(regex))
      return true
    return false
}
// for your sample
if(matchWith(this.$route.path)) {
   return 'footer-pink';
}


看看这个笨蛋,也许是你的答案:https://plnkr.co/edit/sC5VCadDLlRJwH6rpB1T?p=preview

关于javascript - 如何将正则表达式包含在字符串数组中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37178768/

10-13 06:52