获取URL参数

179 阅读1分钟

一、获取指定URL参数

function getSpecifyParam(url, param) {
    let reg = new RegExp("(^|&)"+param+"=([^&]*)(&|$)", "i");
    let r = url.match(reg);
    if(r) return unescape(r[2]);
    return null;
}
  • (^|&):从头或者&开始匹配参数param
  • =([^&]*):匹配=号后面零个或多个不是&的字符,直至碰到第一个&为止
  • (&|$):匹配最后一个&

二、获取所有的URL参数

function getAllParams(url){
  var pattern = /(\w+)=(\w+)/ig;
  var params = {};
  url.replace(pattern, function(a, b, c){
    params[b] = c;
  });
  return params;
 }
  • \w: 匹配字母或数字或下划线或汉字等价于 [^A-Za-z0-9_]
  • (): 此处括号的作用是引用分组,可以进行数据提取,以及更强大的替换操作
    • 数据提取
    var regex = /(\d{4})-(\d{2})-(\d{2})/;
    var string = "2017-06-12";
    console.log( string.match(regex) ); 
    // ["2017-06-12", "2017", "06", "12", index: 0, input: "2017-06-12"]
    
    • 数据替换 比如,想把yyyy-mm-dd格式,替换成mm/dd/yyyy
    var regex = /(\d{4})-(\d{2})-(\d{2})/;
    var string = "2017-06-12";
    var result = string.replace(regex, "$2/$3/$1");
    console.log(result); // "06/12/2017"