zoukankan      html  css  js  c++  java
  • (十)前端-正则

    10.正则

    //解析 URL Params 为对象
     var str = 'http://www.zhufengpeixun.cn/?lx=1&from=wx&b=12&c=13#qqqq';
    function getParam(url){
      var reg = /([^?=&]+)=([^?=&#]+)/g;
      let obj = {};
      url.match(reg).forEach(item=>{
        let a = item.split('='); // ['lx','1']
        obj[a[0]] = a[1]
      })
      return obj
    }
    getParam(str);
    //=================================================
     
    //模板引擎实现
    let template = '我是{{name}},年龄{{age}},性别{{sex}}';
    let data = {
      name: '姓名',
      age: 18
    }
    render(template, data); // 我是姓名,年龄18,性别undefined
     
    function render(template, data) {
      const reg = /{{(w+)}}/; // 模板字符串正则
      if (reg.test(template)) { // 判断模板里是否有模板字符串
        const name = reg.exec(template)[1]; // 查找当前模板里第一个模板字符串的字段
        template = template.replace(reg, data[name]); // 将第一个模板字符串渲染
        return render(template, data); // 递归的渲染并返回渲染后的结构
      }
      return template; // 如果模板没有模板字符串直接返回
    }
    //=================================================
     
    // 出现次数最多的字符
     var str = 'sfgsdfgsertdgfsdfgsertwegdsfgertewgsdfgsdg';
    function getMax2(str) {
      str = str.split('').sort().join('');// 把字符串进行排序
      let key = '',num = 0;
      str.replace(/(w)1*/g,function($0,$1){
        if($0.length > num){
          num = $0.length;
          key = $1;
        }
      })
      return{
        key,num
      }
    }
    getMax2(str);
    //=================================================
     
    // 千分符的实现
    // 100,000,00
    //方法1
    var str = '1234567'; // 1,234,567
    function moneyFormate(str){
      str = str.split('').reverse().join('')
      let s = '';
      for(let i = 0; i < str.length ; i++){
        i%3 == 2 ? s+=str[i]+',' : s+=str[i]
      }
      s = s.split('').reverse().join('')
      return s
    }
    moneyFormate(str);// 1,234,567
     
     
     
     
     
    // 方法2
    var str = '1234567';
    function moneyFormate2(str){
      let s = '';
      // s = str.replace(/d{1,3}(?=(d{3})+$)/g,function(a){
      //     console.log(arguments)
      //     return a + ','
      // })
      s = str.replace(/(d{1,3})(?=(d{3})+$)/g,'$1,');
      return s;
    }
    moneyFormate2(str);
    //=================================================
     
     
    var str = '   sdfgsg   fsgfsd    ';
    // 使用正则去除字符串的首尾空格
    // 以 1 到 多个 空格开头或者结尾的 都替换成空;
    var res = str.replace(/^ +| +$/g,'')
    
    
  • 相关阅读:
    软件测试人员的年终绩效考核怎么应对
    收藏
    顶踩组件 前后两版
    订阅组件
    hdu 1963 Investment 完全背包
    hdu 4939 Stupid Tower Defense 动态规划
    hdu 4405 Aeroplane chess 动态规划
    cf 414B Mashmokh and ACM 动态规划
    BUPT 202 Chocolate Machine 动态规划
    hdu 3853 LOOPS 动态规划
  • 原文地址:https://www.cnblogs.com/HelloBytes/p/14177969.html
Copyright © 2011-2022 走看看