如题,我想通过split("/\.\,/")来分隔句子,把分隔的单位处理完后还要组在一起返回,但是分割后的字符串是不包含原句中的符号的,如:how,are.you,切分完后为[how,are,you],进行一些处理后,比如每个都上s就变成了[hows,ares,yous],但是现在我要把它还原的话因为没有了开始的符号了。请问各位有什么更好的办法?

解决方案 »

  1.   

    这样子的话就不要用split了,用了更麻烦~~你有多个标志位,又不能一竿子打死,全加,或者全加.
    这种情况,你还是用indexOf来判断该字符串中,或者.在什么位置,然后在该位置前动态插入你要加的字符,这种做法就是直接根据标志位去插入,改变原字符串。又不需要去记住老的标志位是什么
      

  2.   

    用indexof有个问题是里面的参数不能使用正则表达式,而我有多个需要切分的标记,比如“,.”,这个时候用indexof找不到
      

  3.   

    可以采用二维数组存储<script>
    var str = "how,are.you";
    var arr = str.split(",");
    for(var i=0;i<arr.length;i++){
    arr[i] = arr[i].split(".");
    }
    alert(arr);//how,are,you
    //这里是二维数组[how,[are,you]]for(var i=0;i<arr.length;i++){
    arr[i] = arr[i].join(".");
    }
    alert(arr.join(","));how,are.you
    </script>
      

  4.   

    split时候用的正则是动态变化的,也就是说你切割的标志位是动态变化且不止一个,而split这个方法是直接根据正则将字符串切割成了数组,除非你自己去实现一个split,否则你根本记录不下,在该字符串中,什么位置被什么切割字符切割开了,这个信息获得不到,你想根据数组重组数据,不可能的~
      

  5.   

    楼主加点分~~看看这是不是你想要的<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
     </HEAD> <BODY>
      <script type="text/javascript">var str = "how,are.you";//原字符串 
    var reg=/\.|\,/g;//正则表达式//alert(str.split(reg).length);
    //alert(str.match(reg).length);//记录每个标志位的字符到底是什么
    var strFlag = [];
    for(var i=0;i<str.match(reg).length;i++)
    {
    strFlag[i]=str.match(reg)[i];
    }alert("变更前的字符串:"+str);//开始切割
    var strArray=str.split(reg);
    for(var i=0;i<strArray.length;i++)
    {
    strArray[i]+="s";
    }//将数组还原
    var strNew="";
    for(var i=0;i<strArray.length;i++)
    {
    if(strFlag[i]!=null)
    {
    strNew += strArray[i]+strFlag[i];
    }
    else
    {
    strNew += strArray[i];
    }

    }alert("变更后的字符串:"+strNew);
     
    </script>
     </BODY>
    </HTML>