小问一下,有谁看明白这小子想干什么的?麻烦告诉我啊用str.split()可以实现你还用正则干嘛?

解决方案 »

  1.   

    这里我只是举一个例子,因为分割符不是固定的,所以我必须要用正则表达式来处理。像刚才的例子在实际分割的时候,reg=new RegExp("\\\s*,\\\s*"),直接传字符串参数到split函数是不能得到正确结果的。
      

  2.   

    但是"lin,,s,,"用正则表达式做参数返回的数组result的结果是:result[0]=lin,result[1]=s
    而我要得到的结果是result[0]=lin,result[1]=(空字符),result[2]=s…………
    表达能力不大好,不好意思。
      

  3.   

    呵呵,我再解释一下。
    比如,输入字符串是str="l,,,i,"
    如果用 var res= str.split(",");
    得到的res数组的内容是:res[0]="l",res[1]="",res[2]="",res[3]="i",res[4]=""如果用var reg = new RegExp(","),res = str.split(reg)得到的res数组内容是:res[0]="l",
    res[1]="i"。然后我想请教大家的是如何既用第二种方法,又可以得到第一种方法的结果。
    谢谢大家了。
      

  4.   

    空值是在的,只是你直接弹出看不太清楚
    <script language=javascript>
    var str="lin,,,,ss,sss,,,"
    strArray=str.split(",")
    for(var i=0;i<strArray.length;i++)
    {
    alert(strArray[i])
    }
    </script>
      

  5.   

    明白你的意思了,的确很怪,恐怕这是split函数里面去掉的吧。如果你一定要这么用,把split函数重写下吧
      

  6.   

    感觉没什么实际意义,最好还是用你的第一种方法
    <script language=javascript>
    var _split=String.prototype.split;
    String.prototype.split=function()
    {
    var ra=arguments[0]
    re=/\/(.+?)\//
    alert(ra.toString())
    re.test(ra.toString());
    tempArray=_split.call(this,RegExp.$1)
    return tempArray;
    }

    var str="lin,,,,ss,sss,,,"
    re=new RegExp(",","g")
    strArray=str.split(re)
    for(var i=0;i<strArray.length;i++)
    {
    alert(strArray[i])
    }
    </script>
      

  7.   

    贪婪和非贪婪其实就是匹配是否都匹配,举个例子
    <a>dasd</a><a>sadsdf</a>
    如果非贪婪则匹配<a>dasd</a>
    贪婪则都匹配
      

  8.   

    估计楼主需要的是:"1, 2,, 3, 4,".split(/[, ]/g)得到的array有9项,而不是实际得到的1,2,3,4好像有些麻烦
      

  9.   

    String.prototype._split=function(re){
      var str = this.replace(/\"/g,"\\\"").replace(re,"\",\"");
      str = "[\""+str+"\"]";
      return eval(str);
    }
    alert("lin,,,,ss,sss,,,"._split(/,/g).join("->"));
      

  10.   

    to hbhbhbhbhb1021(天外水火(我要多努力)) 
    上面的例子只是我程序中可能出现的一种情况,还有一类情况是:"lin", "s",""    ,"c"
    ,遇到这种情况的时候我必须要以"\\\s*,\\\s*"来做分割符,不用正则的话,我不知道该怎么表达逗号和分号之间带有空格或者tab的情况
      

  11.   

    先用replace函数把你的这个"\\\s*,\\\s*"替换成“,”号,然后再用split分
      

  12.   

    这是其中一种情况:
    reg = new RegExp("\\\s*,\\\s*","g");
    result = str.split(reg);
    不用正则的话好象实现不了这样的分割
      

  13.   

    你的是用JavaScript吧    hbhbhbhbhb1021(天外水火(我要多努力))  2006-8-20 23:24:37 
    已经解答了你的问题了呀!
      

  14.   

    但是那是没有空格的情况啊,如果以reg = new RegExp("\\\s*,\\\s*","g");
    来分割就不行了哦,
    hbhbhbhbhb1021(天外水火(我要多努力))  写个可以适应上面情况的函数吧,可以单独再开一贴给你100分,多谢了。
      

  15.   

    为表示诚意我先结贴然后再开一贴请hbhbhbhbhb1021(天外水火(我要多努力))  帮忙