从事软件开发,走入IT行业是我这辈子做得最正确的事,程序很美,好的程序能减少大量的人力物力财力,我为写好的程序而奋斗

js 字符串占位符方法替换函数

方法定义:

/**
 * 字符串替换函数
 * @param str  待替换的字符串
 * @param data 待替换的值,当flag为1时,data是一个数组,当flag为2时,data是一个字符串,当flag为3时,data是一个对象
 * @param flag 替换类型,1:一一替换,2:统一替换,3:对象替换 默认为1
 * @param placeholder 自定义占位符,默认为{{%s}} 
 * @returns
 */
function str_replace(str,data,flag,placeholder){
    //data表示传递的值,是一个数组,当flag为true或者只替换一个字符串时,该值可以是简单数据类型
    placeholder = placeholder || "{{%s}}"; //自定义占位符
    flag = flag || 1;  //为true表示将值赋值给所有的变量
    str = "" + str;
    if(flag==1){
        var length = data.length;
        stopFlag = false;
        count = 0;
        var pos = str.indexOf(placeholder);
        while(pos>-1){
            count ++;
            pos = str.indexOf(placeholder,pos + placeholder.length);
        }
        if(count > length){
            alert('尊敬的程序员,待替换的参数少了,请检查(字符串替换函数提示消息)');
        }
        for(var i=0;i<length;i++){
            str = str.replace(placeholder,data[i]);    
        }
    }
    else if(flag==2){ //用同一个值替换所有的占位符
        var pattern = new RegExp(placeholder,'g');
        str = str.replace(pattern,data);
    }
    else if(flag==3){
        for(key in data){
            var pattern = new RegExp('{{' + key + '}}','g');
            str = str.replace(pattern,data[key]);
        }
    }
    return str;
}

方法调用


评论

© qzblog | Powered by LOFTER