• js中replace的第二个参数是函数的情况应用


    1.把字符串中所有单词的首字母都转换为大写:

    var str = 'aaa bbb ccc';
    uw=str.replace(/w+/g, function(word){
      return word.substring(0,1).toUpperCase()+word.substring(1);}
      );
    说明:匹配一次就执行一次函数,匹配的内容作为参数
    function uppperCase(str) {  
        return str.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase());  
    }
    
    

    2.把数字转成对应的汉字

    var ary=["一","二","三","四","五","六"]
    "123456".replace(/d/g,function(val){
      return ary[val-1]
    })
    

    3.实现模板字符替换’  

    var obj = {
        name:'leaf',
        age:20
    }
    var str = "我是{{name}},name是我的名字,我今年{{age}}岁";
    //最终替换成"我是leaf,name是我的名字,我今年20岁"
    实现:
    function render(template, context) {
      return template.replace(/{{(.*?)}}/g, (match, key) => context[key.trim()]);
    }
    

     

    function formateString(str,obj) {
        return str.replace(/{#(w+)#}/g,function(match,key,index,source){
            console.log(arguments);
            return obj[key]
        })
    }
    var string='<div>{#content#}</div>';
    formateString(string,{content:'helloWorld'});
    

    4.颜色字符串转换

    将 rgb 颜色字符串转换为十六进制的形式,如 rgb(255, 255, 255) 转为 #ffffff
    1. rgb 中每个 , 后面的空格数量不固定
    2. 十六进制表达式使用六位小写字母
    3. 如果输入不符合 rgb 格式,返回原始输入

    function rgb2hex(sRGB) {
        return sRGB.replace(/^rgb((d+)s*\,s*(d+)s*\,s*(d+))$/g, (s, r, g, b) => {
            return `#${hex(r)}${hex(g)}${hex(b)}`
            })
    }
    function hex(n) {
        return n < 16 ? "0" + (+n).toString(16) : (+n).toString(16);
    }
    输入:
    'rgb(255, 255, 255)'
    输出:
    #ffffff

      5.将字符串转换为驼峰格式

    css 中经常有类似 background-image 这种通过 - 连接的字符,通过 javascript 设置样式的时候需要将这种样式转换成 backgroundImage 驼峰格式,请完成此转换功能
    1. 以 - 为分隔符,将第二个起的非空单词首字母转为大写
    2. -webkit-border-image 转换后的结果为 webkitBorderImage

    function cssStyle2DomStyle(sName) {
       return sName.replace(/-(.)/g, (s, v, k) => {
           if( k=== 0) {return v}
           return v.toUpperCase();
       })
    }
    输入:
    'font-size'
    输出:
    fontSize

      

      

    其他常用正则替换 

    //去除空格
    String.prototype.Trim = function() {
    return this.replace(/s+/g, "");
    }
      
    //去除换行
    function ClearBr(key) {
    key = key.replace(/</?.+?>/g,"");
    key = key.replace(/[
    ]/g, "");
    return key;
    }
      
    //去除左侧空格
    function LTrim(str) {
    return str.replace(/^s*/g,"");
    }
      
    //去右空格
    function RTrim(str) {
    return str.replace(/s*$/g,"");
    }
      
    //去掉字符串两端的空格
    function trim(str) {
    return str.replace(/(^s*)|(s*$)/g, "");
    }
      
    //去除字符串中间空格
    function CTim(str) {
    return str.replace(/s/g,'');
    }
      
    //是否为由数字组成的字符串
    function is_digitals(str) {
    var reg=/^[0-9]*$/; //匹配整数
    return reg.test(str);
    }
    

      

  • 相关阅读:
    坚决不再犯的脑残错误
    2018.8.21提高A&省选组模拟考试
    2018.10.9模拟考试
    fread()快读
    2018.10.6模拟考试
    2018.10.4模拟考试
    2018.8.20提高AB组模拟考试
    2018.8.21提高AB组模拟考试
    2018.8.19提高B组模拟考试
    2018.8.18提高B组模拟试题
  • 原文地址:https://www.cnblogs.com/ygunoil/p/15089561.html
Copyright © 2020-2023  润新知