正则捕获小练习

1 . URL解析

let str = 'https://www.baidu.com/s?qqq=111&www=222&eee=333';

function queryURL(str,key) {

let reg = /[a-z]+=\d+/g;  //以=分割 左边是a-z之间出现1次或者到多次的字符,右边是数字。g代表 全局匹配,找到所有符合条件的

let ary = str.match(reg);//  

// console.log(ary);  //  ['qqq=111', 'www=222', 'eee=333']

let obj = {};  // 创建一个空对象 

ary.forEach(item => {//  循环ary数组 -->['qqq=111', 'www=222', 'eee=333']

let key = item.split('=')[0],

value = item.split('=')[1];

obj[key] = value;

})

// console.log(obj);

//看看key是否存在 存在就返回obj[key]不存在就返回obj

return key ? obj[key] : obj;

}

queryURL(str,'ttt')

console.log(queryURL(str));

2.去除字符串的首尾空格

  let str='  sdsdafd asdfsdaf     '

  //字符串.trim()是一个用来去除字符串首尾空格的方法

  console.log(str.trim());

  let reg=/^ +/  //以一到多个空格开头

  let reg2=/ +$/  //以一到多个空格结尾

  let reg3=/^ +| +$/g;//匹配以一到多个空格或一到多个结尾

  str=str.replace(reg3,'')

  console.log(str);

3.字符串中的-首字母转换大写

let str='get-element-by-id'   //---> getElementById

  // let reg=/-(\d)/g

  //replace本职是替换

  let res=str.replace(/-(\w)/g,function(a,b){

    //a--->  -e -b -i;b-->e b i

    //函数的返回结果是把大正则匹配的内容替换了

    return b.toUpperCase()

  });

4. 大写转换成-小写

  let str= 'getElementById';

  let res=str.replace(/[A-Z]/g,function(a){

    return '-'+a.toLocaleLowerCase()

  })

5.大写转换成小写

  let str = 'HGJHgHJGHg发水电费hHhgGgHJ';

  let res = str.replace(/[a-zA-Z]/g, function ($0) {

    //$0是大写还是小写

    return /[a-z]/.test($0) ? $0.toUpperCase() : $0.toLocaleLowerCase()

  })

6.千分符

let atr = '12345678.22';

  function ThousandSeparator(str) {

    let reg = /\d(?=(\d{3})+$)/g;

    let xiaoshu = str.split('.')[1];

    str = str.split('.')[0];

    return str.replace(reg, function (a) {

      return a + ','

    }) + (xiaoshu ? '.' + xiaoshu : '')

  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值