以下代码的作用是记录最近浏览过的网页,但这里的截取标题是将整个title中的内容截取过来。现在我想截取在字符“ABC”之前的标题内容,请问该如何做呢?
if(navigator.cookieEnabled){//判断是否支持Cookie
     var tag = document.getElementById("new");//输出结果DIV id
     var N = 10;//太长标题截取汉字字数
     var listCount = 10;//记录和显示最近几条
     var myTitle = escape(document.title) + "^";//取标题
     var myUrl = escape(location.pathname) + "$";//取地址
     var expTime = new Date(new Date().setDate(new Date().getDate() + 500));//设定过期时间为500天
     var edp = "|; expires=" + expTime.toGMTString() + "; path=/"; //; domain=webcars.com.cn //组合Cookie参数
     var allCookie = document.cookie; //取出全部Cookie
     if(allCookie.indexOf("news=") != -1 || allCookie.indexOf("$|") != -1){//判断是否为第一次浏览
         var myCookieStart = allCookie.indexOf("news=") + "news=".length;
         var myCookieEnd = allCookie.indexOf("$|",myCookieStart);
         var myCookieall = unescape(allCookie.substring(myCookieStart,myCookieEnd));
         var myCookie = myCookieall.split("$");
         var myCookieTit = new Array();
         var myCookieUrl = new Array();
         for(var i = 0; i < myCookie.length; i++){
             var myCookieOne = myCookie[i].split("^");
             myCookieTit[i] = myCookieOne[0];
             myCookieUrl[i] = myCookieOne[1];
         }
         var tagDat = "";
         for(var i =myCookieTit.length - 1; i >= 0; i--){//从先到后顺序取得结果值
             var textCount = myCookieTit[i].replace(/[^\x00-\xff]/g,"aa").length;
             if(textCount <= N*2){
                 texts = myCookieTit[i];
             }else{
                 for(var a = N; a < textCount; a++){
                     texts = myCookieTit[i].substr(0,a);
                     if(texts.replace(/[^\x00-\xff]/g,"aa").length >= N*2){
                         texts += "..."
                         break;
                     }
                 }
             }
             tagDat += "<a href=\"" + myCookieUrl[i] + "\"" + " title=\"" + myCookieTit[i] + "\">" + texts + "</a><br />"
         }
     tag.innerHTML =tagDat;//输出结果给页面div
     var newCookie = "";//************************************************
     if(myCookie.length < listCount){
         for(i in myCookie){
             if(myCookieTit[i] == document.title) continue;//去除重复
             newCookie += escape(myCookieTit[i]) + "^" + escape(myCookieUrl[i]) + "$" ;
         }
     }else{
         for(var i = 1; i < listCount; i++){
             if(myCookieTit[i] == document.title) continue;
             newCookie += escape(myCookieTit[i]) + "^" + escape(myCookieUrl[i]) + "$" ;
         }
     }
     document.cookie = "news=" + newCookie + myTitle + myUrl + edp;//**********
     }else{//第一次浏览处理
         document.cookie = "news="+ myTitle + myUrl + edp;
         //document.cookie = "news="+ myTitle + myUrl + escape("中国 china OK") + "^"+escape("123456")+"$"+escape("神 ooo 仙 456 art ")+"^"+ escape("456")+"$"+escape("weird 万事如意")+"^"+escape("098") +"$"+ edp;    
     }
}else{//不支持Cookie的处理
     tag.innerHTML="您浏览器关闭了cookie功能,不能为您自动保存最近浏览过的网页。"
}

解决方案 »

  1.   

    以上内容都能写出来,截取标题只是小case了。
    不明白:现在我想截取在字符“ABC”之前的标题内容 ABC是什么?
      

  2.   


    String.prototype.getLen = function() {
    return this.replace(/[^\x00-\xff]/g, '00').length;
    }/***/
    /* @param len 要截取的字符串最大长度(汉字算两个字符)
    /***/
    String.prototype.cutStr = function(len) {
    var _len = this.getLen();
    if(_len <= len) {
    return this;
    } else {
    var _n = 0;
    var _subStr = '';
    var _cutStr = [];
    while(_n < len) {
    _subStr = this.charAt(_cutStr.length);
    if(/[^\x00-\xff]/.test(_subStr)) {
    _n += 2;
    } else {
    _n += 1;
    }
    if(_n > len) {
    break;
    }
    _cutStr.push(_subStr);
    }
    return _cutStr.join('');
    }
    }document.title.cutStr(20);
      

  3.   


    var test = "dasdsacABCsacasa";
    var first = test.indexOf("ABC");
    var ABC_before = test.substring(0,first);
    alert(ABC_before )