爱意满满的作品展示区。
iugo

用 JavaScript 获取 URL 中任意存在的参数

  •  
  •   iugo ·
    iugo · Mar 28, 2015 · 3081 views
    This topic created in 4148 days ago, the information mentioned may be changed or developed.
    - 新手, 期待意见.
    - 说明: 纯 JavaScript 实现, 没有用 jQuery.
    - 代码:

    想将其封装为一个类, 达成

    var id = new valueURL("id") // id = 123

    这样的效果. 但是还不知道该怎么下手.
    7 replies    2015-09-30 16:37:33 +08:00
    loading
        1
    loading  
       Mar 28, 2015 via Android
    这应该发 问与答,创造问题不属于创造!
    iugo
        2
    iugo  
    OP
       Mar 28, 2015
    @loading 刚才我想了想, 没有作为类, 而是先写成了函数. JavaScript 怎么写类不明白. 不过功能已经实现, 可以正常用.

    我的写法和网上搜索到的不一样, 希望从另外一个角度给大家带来点什么东西.
    zrp1994
        3
    zrp1994  
       Mar 28, 2015   ❤️ 1
    @iugo 草草写了个,你感受下
    var parseQuery = function(string) {
    var urlSplit = string.split('?'), querySplit = [], queries = {};
    if(urlSplit.length < 2 || !urlSplit[1])
    return null;
    querySplit = urlSplit[1].split('&');
    for (var i = 0; i < querySplit.length; i++) {
    var query = querySplit[i].split('=');
    if(query.length > 0 && query[0])
    queries[query[0]] = query[1];
    };
    return queries;
    }

    console.log(parseQuery('https://www.baidu.com/s?ie=UTF-8&wd=%E6%B5%8B%E8%AF%95'));
    console.log(parseQuery('https://www.baidu.com/s?ie=UTF-8&=%E6%B5%8B%E8%AF%95'));
    console.log(parseQuery('https://www.baidu.com/s?ie=UTF-8&wd='));
    console.log(parseQuery('https://www.baidu.com/s?ie=UTF-8&='));
    console.log(parseQuery('https://www.baidu.com/s?ie=UTF-8'));
    console.log(parseQuery('https://www.baidu.com/s?'));
    console.log(parseQuery('https://www.baidu.com/s'));

    测试结果:
    { ie: 'UTF-8', wd: '%E6%B5%8B%E8%AF%95' }
    { ie: 'UTF-8' }
    { ie: 'UTF-8', wd: '' }
    { ie: 'UTF-8' }
    { ie: 'UTF-8' }
    null
    null
    ETiV
        4
    ETiV  
       Mar 28, 2015   ❤️ 1
    nowgoo
        5
    nowgoo  
       Mar 28, 2015   ❤️ 1
    function get_value(name, url) {
    return (url.substr(url.indexOf('?')).substr(1).match(new RegExp('(?:^|&)' + name + '=([^&]*)(?:&|$)', 'i')) || [])[1] || '';
    }
    sumhat
        6
    sumhat  
       Mar 28, 2015   ❤️ 1
    楼上的几位,对于有 # 的 URL,你们的代码肯定挂
    iugo
        7
    iugo  
    OP
       Sep 30, 2015
    @sumhat 在 @ETiV 的代码中, 稍微修改下正则应该就会好.

    /[?&]:?([^=]+)=([^&#]*)/g
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2805 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 15:15 · PVG 23:15 · LAX 08:15 · JFK 11:15
    ♥ Do have faith in what you're doing.