Fork me on GitHub

面试题之JavaScript 有一个url 'http://www.youdao.com/newcard.html?sid=50&a=5&add=9&type=all',请写一个获取url中'?'后制定参数值的函数

小编才疏学浅,若文章、答案有错误之处,欢迎邮件通知小编及时修改,同时也可以面试题投稿。最后祝大家共同进步!
有一个url 'http://www.youdao.com/newcard.html?sid=50&a=5&add=9&type=all',请写一个获取url中'?'后制定参数值的函数
答案:


    /**
     * 获取某一个name值的参数
     * @param    {string}      name 想要获取的参数名
     * @param    {string}      str  可选参数,传入类似*=*&*=*格式的str,默认是location.search
     * @return   {string}           返回查询的结果
     */
    function getUrlValue(name, str) {
      if (!name) {
        return "";
      }
      var reg = new RegExp("(^|[?&])" + name + "=([^&]*)(&|$)");
      var url = str || window.location.search;
      var match = url.match(/\??[^#]*/);
      if (!match || match[0].length === 1) {
        return tmp;
      }
      var result = match[0].match(reg);
      if (result != null) {
        return decodeURIComponent(result[2]);
      } else {
        return "";
      }
    }

    /**
     * 格式化url参数(也可以传入固定字符串)
     * @param    {string}      str 可选参数,传入类似*=*&*=*格式的str,默认是location.search
     * @return   {json}          返回格式化之后的key,value对象
     */
    function getUrl(str) {
      var tmp = {};
      var url = str || window.location.search;
      // 保存?和#之间的部分内容
      var match = url.match(/\??[^#]*/);
      if (!match || match[0].length === 1) {
        return tmp;
      }
      var reg = /([^?&]*)=([^&]*)/g;
      // 保存符合键值对格式的结果数组
      var paramArr = match[0].match(reg);
      for (var i = 0; i < paramArr.length; i++) {
        var arr = paramArr[i].match(/([^?&]*)=([^&]*)/),
          key = arr[1],
          value = decodeURIComponent(arr[2] || "");
        tmp[key] = value;
      }
      return tmp;
    }

posted @   较瘦  阅读(145)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
知识点文章整理
点击右上角即可分享
微信分享提示