js实现字符串转化为对象(两种方式)

javascript开发过程中,经常会遇到字符串转化为对象的操作。比如url传参时"name=jack&age=20&love=lily"转化为对象。可以用两种方法转化,简单的for循环转化,或者利用正则表达式转化。

测试直接使用浏览器控制台。

工具/原料

  • 文本编辑器,浏览器

for循环方式转化

  1. 1//for循环方式

    /**

    * [parseStrObjByFor 字符串转化为对象(for循环方式)]

    * @param  {[type]} strDes    [字符串]

    * @param  {[type]} delimiter [分隔符]

    */

    function parseStrObjByFor(strDes, delimiter){

    var obj = {};

    if(strDes == null || strDes == ''){

    return obj;

    }

    delimiter = delimiter || ";";

    var arr = strDes.split(delimiter);

    var k, v, sub;

    for (var i = 0, len = arr.length; i < len; i++) {

    if(arr[i] !== ''){

    sub = arr[i].split("=");

    k = sub[0];

    v = sub[1];

    if (k !== '') {

    obj[k] = v;

    }

    }

    }

    return obj;

    }

    var obj = parseStrObjByFor("name=jack&age=20&love=lily","&");

    js实现字符串转化为对象(两种方式)
  2. 谷歌浏览器控制台运行代码,并查看结果。
    js实现字符串转化为对象(两种方式)

    END

正则表达式实现

  1. /**

    * [parseStrObjByRegExp 字符串转化为对象(正则表达式方式)]

    * @param  {[type]} strDes    [字符串]

    */

    function parseStrObjByRegExp(strDes){

    var obj = {};

    strDes.replace(/(\w+)(?:=([^;]*))?/g,function(str, key, value){

    obj[key] = value;

    });

    return obj;

    }

    var obj = parseStrObjByRegExp("name=jack;age=20;love=lily");

    js实现字符串转化为对象(两种方式)
  2. 谷歌浏览器控制台运行代码,并查看结果。
    js实现字符串转化为对象(两种方式)
  3. 利用正则表达式方式实现,代码量尤其简单。

    END

注意事项

  • 暂时只想到这两种实现方法,还有其他方法的请留言讨论
  • 如果对您有帮助,请多多关注

本文来源:http://jingyan.baidu.com/article/870c6fc30e01ecb03fe4be0f.html


如果给你带来帮助,欢迎微信或支付宝扫一扫,赞一下。