现有一字符串:
var str = “
NAME = Public TYPE = FIXED
BRIDGE = vbr1
LEASES = [IP=130.10.0.1, MAC=50:20:20:20:20:20]
LEASES = [IP=130.10.0.2, MAC=50:20:20:20:20:21]
LEASES = [IP=130.10.0.3]
LEASES = [IP=130.10.0.4] “;
说明:这个串形如map,键值对形式,每对之间以空格隔开或换行隔开。
目的:根据key得到value,如:知道NAME就知道是public
思路:想利用字符串分割,然后转化成json格式,再一一得到(不过分割很容易出错!)。不知道哪位大侠有更好方法或类似得插件。就好比jquery得url解析插件.

解决方案 »

  1.   

    我是在js中操作,用eval操作之前,还是得分割字符串成形如:  var a=50,b="xxx";
      var arr="{id:"+a+",name:'"+b+"'}";
      arr=eval('('+arr+')')
      alert(arr.name);
      

  2.   

    用正则来匹配分解成数组,再用split分解等号,第一个元素就是key,第二个元素就是值,用一个空对象来收集。var reg = /(.+ = .+)/g
    ...
      

  3.   

    [^\s]*[\s]*=[\s]*[^\s]*
    解析结果如下:NAME = Public
    TYPE = FIXED
    BRIDGE = vbr1
    LEASES = [IP=130.10.0.1, 
    MAC=50:20:20:20:20:20] 这里分析不对~
    这个能匹配出所有的等式,但是我还想对#开头的注释屏蔽,并且LEASES = [IP=130.10.0.2, MAC=50:20:20:20:20:21]
    匹配也有点问题,望高手进一步解答下。