var myfiles="city=北京市district=海淀区street=北四环西路streetno=9"
var a=myfiles.replace(/[a-zA-Z=]/g,",");
var b=a.split(",");
var c=new Array(4);
var n=0;
for(var i=0;i<b.length;i++)
{
   if(b[i]!="")
   {
 c[n]=b[i];
     n++;
   }
}
var aa = c[0];
        var bb = c[1];
        var cc = c[2];
var dd = c[3];

解决方案 »

  1.   

    city,district,street,streetno这些是不是固定的,只是值不同而已?
      

  2.   

    /city=(\w+)district=(\w+)street=(\w+)streetno=(\d+)/<script language="javascript">
    var myfiles="city=北京市district=海淀区street=北四环西路streetno=9";
    var re = /city=([^\x00-\xff]+)district=([^\x00-\xff]+)street=([^\x00-\xff]+)streetno=(\d+)/;
    if(re.test(myfiles))
    {
    var aa = RegExp.$1;
    var bb = RegExp.$2;
    var cc = RegExp.$3;
    var dd = parseInt(RegExp.$4);
    }
    alert(aa);
    alert(bb);
    alert(cc);
    alert(dd);
    </script>
      

  3.   

    <script language="javascript">
    var myfiles="city=北京市district=海淀区street=北四环西路streetno=9";
    var re = /city=([^\x00-\xff]+)district=([^\x00-\xff]+)street=([^\x00-\xff]+)streetno=(\d+)/;
    if(re.test(myfiles))
    {
    var aa = RegExp.$1;
    var bb = RegExp.$2;
    var cc = RegExp.$3;
    var dd = parseInt(RegExp.$4);
    }
    alert(aa);
    alert(bb);
    alert(cc);
    alert(dd);
    </script>
      

  4.   

    我现在通过AJAX传到javascript里有个字符串名字叫my_files
    myfiles="city=北京市district=海淀区street=北四环西路streetno=9"
    -----------------如果你这样设计返回字符串,就更好了:myfiles="{city:'北京市',district:'海淀区',street:'北四环西路',streetno:9}";取值:var obj = eval( "(" +myfiles+ ")" );
    alert(obj.city);
    alert(obj.district);
    alert(obj.street);
    alert(obj.streetno);
      

  5.   

    myfiles="city=北京市district=海淀区street=北四环西路streetno=9";function item(k,p){
     this.key = k;
     this.pos = p;
    }
    function sfun(obj1,obj2){
    if(obj1.pos == obj2.pos) return 0;
    if(obj1.pos > obj2.pos) return 1;
    if(obj1.pos < obj2.pos) return -1;
    }
    s = myfiles;
    var key = new Array();
    key[0] = "city";
    key[1] = "district";
    key[2] = "street";
    key[3] = "streetno";
    var val = new Array();
    var pos = new Array();
    for(var i=0;i<key.length;i++){
    n = s.indexOf(key[i] + "=");
    if(n!=-1) pos[pos.length] = new item(key[i], n);
    }
    pos.sort(sfun);
    for(var i=0;i<pos.length;i++){
    if(i==pos.length-1) n = s.length;
    else n = pos[i+1].pos;
    val[val.length] = s.substring(pos[i].pos+pos[i].key.length+1, n);
    }
    aa = val[0];
    bb = val[1];
    cc = val[2];
    dd = val[3];
      

  6.   

    我用gzdiablo() 的试过了 我请问 为什么我再加入其他返回的结果时确不能用了alert出来的结果是undefined呢????请您回答下
      

  7.   

    myy() 这位朋友的也有问题在var obj = eval( "(" +myfiles+ ")" );行 说我缺少")"我看来看去没有问题啊 请您也做答
      

  8.   

    看了这个帖子我的确不是很明白了,
    -------------------------------------------
    我现在通过AJAX传到javascript里有个字符串名字叫my_files
    myfiles="city=北京市district=海淀区street=北四环西路streetno=9"
    -------------------------------------------
    如果这个得到的字符串是自己组装的话,那么为什么一定要组装成这样呢,这样的确给自己的解析带来了麻烦,使用正则表达式的确需要功底,比如上面那些兄弟们。
    我只是在想,如果没有什么特别的需求的话,的确可以考虑在服务器端从新组装字符串,比如说,可以组装成xml格式
    <result>
      <city>北京市</city>
      <district>海淀区</district>
      <street>北四环西路</street>
      <streetno>9</streetno>
    </result>客户端端接收到字符串后,比如存在myfiles中
    使用如下代码解析
    var xmldoc = new ActiveXObject("MSXML2.DOMDocument");
    xmldoc.loadXML(myfiles);
    var city = xmldoc.documentElement.childNodes[0].text;
    var district= xmldoc.documentElement.childNodes[1].text;
    var street= xmldoc.documentElement.childNodes[2].text;
    var streetno= xmldoc.documentElement.childNodes[3].text;
      

  9.   

    下面是完整的代码,保存为 .htm 即可执行,测试过。<script>
    var myfiles="{city:'北京市',district:'海淀区',street:'北四环西路',streetno:9}";var obj = eval( "(" +myfiles+ ")" );
    alert(obj.city);
    alert(obj.district);
    alert(obj.street);
    alert(obj.streetno);</script>
      

  10.   

    myfiles="city=北京市district=海淀区street=北四环西路streetno=9"=前都是字母,=后都不是字母?
    如果是这样有规律的话可以用正则,如果=后也可以是字母,正则不行<!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 myfiles="city=北京市district=海淀区street=北四?西路streetno=9" 
    alert(myfiles.replace(/[a-z]+?=/gi,","))
    //然后split(",")
    </script>
    </BODY>
    </HTML>
      

  11.   

    FuWaer() 朋友 我知道要组装成XML的形式 我前面也是这么做的 但现在提交到服务器的时候返回的确实是个字符串形式,我也无奈 是上面安排这么做的 所以我很触头!我是新手 如有问到的问题很低级不要笑我就好 
    声明:在此我用的是hookee() 朋友的代码 代码清晰都几乎猜到我程序的内部结构 佩服!而且举的例子很详细 哥们收分!!!!