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,'')
    
    
  • 相关阅读:
    Python time ctime()方法
    Python time clock()方法
    Python time asctime()方法
    Python time altzone()方法
    Python 日期和时间
    java——字符串常量池、字符串函数以及static关键字的使用、数组的一些操作函数、math函数
    java——API
    java——类、对象、private、this关键字
    Java——方法及构造方法、intellij IDEA中的一些快捷键
    IntelliJ IDEA 运行java程序时出现“程序发生找不到或无法加载主类 cn.test1.test1”错误
  • 原文地址:https://www.cnblogs.com/HelloBytes/p/14177969.html
Copyright © 2011-2022 走看看