javascript正则表达式来跟踪页面标题

时间:2015-10-27 10:29:23

标签: javascript

我写了一个下面的代码来返回用户友好的页面标题     但问题是每次页面加载(同时都是url)页面标题“Web Page 1”返回。下面我给了2个网址

  function(){
        var pageTitle = document.title;
             try{
               if(/\/xyx\-abc\- result(\/|)$/i.test(location.pathname)){    
                   pageTitle = "Web Page 1";
               } 
             else if(/\/xyx\-abc\-result\/pqr\-mno\-efg\-lmn(\/|)$/i.test(location.pathname))                                                           
              { 
                   pageTitle = "Web Page 2";
              }

          } catch(err){}
             return pageTitle;
   } 

页面网址1)http://sports.com/xyz-abc-result

Page Url 2)http://sports.com/xyz-abc-result/pqr-mno-efg-lmn

有人可以建议需要做哪些更改

2 个答案:

答案 0 :(得分:0)

尝试使用.split().slice()

var loc = location.href.split("-").slice(-1)[0];
document.title = loc === "result" 
                 ? "Web Page 1" 
                 : loc === "lmn" 
                   ? "Web Page 2" : document.title;

答案 1 :(得分:0)

你的正则表达式有一些缺陷。首先在第一个空间中有一个空格,其次在路径有xyz时搜索xyx

如果我使用此代码,它的工作方式应该是:

var pageTitle = document.title;
var pathname = "/xyz-abc-result/pqr-mno-efg-lmn";
try {
    if (/\/xyz\-abc\-result(\/|)$/i.test(pathname)) {
        alert("Web Page 1");
    } else if (/\/xyz\-abc\-result\/pqr\-mno\-efg\-lmn(\/|)$/i.test(pathname)) {
        alert("Web Page 2");
    }
} catch (err) {}
return pageTitle;

如果你像这样运行它,它会提示" Web Page 2"。如果您将路径名更改为http://sports.com/xyz-abc-result,则会提示"网页1"