String.prototype.dosplit=function(s)
{
var arr = new Array();
var str = this;
var n = 0,i=0;
arr[0]=str;
while(str.indexOf(s)>-1)
{
n = str.indexOf(s);
arr[i] = str.substr(0,n);
i++;
str = str.substr(n+1,str.length);
arr[i] = str;
}
return arr;
}差不多吧

解决方案 »

  1.   

    var _str = "aaaaaaaaaaa|bbbbbbbbbbbbbb";
    var _a = _str.split("|");
    alert(_a[0]); 
      

  2.   

    谢谢 你们的回复!2楼我不是问到底怎么用!是问具体怎么上split实现的!不过谢谢你的回复!
      

  3.   

    刚查了一下资料.要达到资料上的要求很不容易,
    勉强写了一个.
    split
    //将一个字符串分割为子字符串,然后将结果作为字符串数组返回。
    //stringObj.split([separator[, limit]])
    //参数
    //stringObj 
    //必选项。要被分解的 String 对象或文字。该对象不会被 split 方法修改。 
    //separator 
    //可选项。字符串或正则表达式对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。 
    //limit 
    //可选项。该值用来限制返回数组中的元素个数。 
    //说明String.prototype.split=function(separator,limit){
      var arLst = [];
      var str = this;
     
      if(typeof separator =="undefined")
      {
        arLst.push(str);
        return arLst;
      }
       str = str.replace(separator," ");
       var index = str.indexOf(" ");
       while(index > -1)
       {
         arLst.push(str.substr(0,index));
         str = str.substr(index+1,str.length);
         index = str.indexOf(" ");
       }
       arLst.push(str);
       
       if(limit && typeof limit === 'number')
           arLst = Array.prototype.slice.call(this,0,Math.abs(limit)); 
        return arLst;
    };var obj = "aa,bb,cc,dd,Ee";
    var re = /\d{1}/g;
    var obj1 = "aa1bb2cc3dd";
    var list = obj.split(",");
    var list1 = obj1.split(re);//alert(obj1.replace(re,"&"));Ext.each(list1,function(item,index,arLst){
        alert(item);
    });alert(obj);
      

  4.   

    arLst = Array.prototype.slice.call(arLst,0,Math.abs(limit));发现一个bug,自己改一下.
    就犯了一个this指针的问题 
      

  5.   

    实现可没那么简单的哦,split 实现涉及正则表达式引擎。