js拆分字符串的方法(笔记)

一共2种方式,第一种使用普通的字符串函数:

var url = "www.baidu.com/s?name=tt&age=18"


// -> indexOf() 检测当前字符串中第一次出现("?")的位置索引,如果是-1 表示没有。
// -> split 按照某个字符把字符串拆分成数组中的每一项
// -> charAt charCodeAt substr  substring slice...  字符串常用的方法
function queryURLParameter(url){
  let obj = {};
  if (url.indexOf('?')<0) return obj;
  let ary = url.split('?');
  urlParameter = ary[1];
  data = urlParameter.split('&');

  for (var i = 0; i < data.length; i++) {
    let curl = data[i],
      curAry = curl.split('=');
      obj[curAry[0]] = curAry[1];
  }
  return obj;
}
console.log(queryURLParameter(url));

第二种使用正则:

var url = "www.baidu.com/s?name=tt&age=18"

// => 使用正则进行匹配
function queryURLParamteter(url){
  let reg = /([^&?=]+)=([^&?=]+)/g,
      obj = {};
  url.replace(reg,function(){
    obj[arguments[1]] = arguments[2];
  })    
  return obj;
}

console.log(queryURLParamteter(url));

把正则写成面向对象会更好些:

var url = "www.baidu.com/s?name=tt&age=18"
String.prototype.myQueryURLParameter = function(){
  let reg = /([^&?=]+)=([^&?=]+)/g,
      obj = {};
      this.replace(reg,(...arg)=>{
        obj[arg[1]] = arg[2]
      });
  return obj;
}

console.log(url.myQueryURLParameter());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值