关于js字符串替换的一道笔试题目

题目描述

请写出一个字符串转换函数,接受两个参数:
1.字符串 形如{a}ab-{b}cde{c}fff{d}{};
2.对象,形如{'a':'1','b':'2','d':'4'}
根据,对象的属性进行规则替换,输出结果为1ab-2cdefff4;函数

根据样例大概能够猜到替换规则:对于字符串中被大括号"{}"包围的字符串,若是在对象的属性中能找到对应的规则,则按照规则进行替换;若是找不到,就替换为空串。code

思路解析

整个过程能够大体分红如下步骤:
1.查找须要出须要替换部分(被大括号包含的字符串)
2.对于须要替换的部分,查找是否有对应的替换规则,若是有完成替换
3.对于没有替换规则的,替换为空串对象

代码以下:字符串

function strConverse(str,obj){
        var strResult = str.replace(/(\{)(.*?)(\})/g,function(match,pos,orignalTest){
            var matchContent=match.slice(1,match.length-1);
            if(obj.hasOwnProperty(matchContent))
                return obj[matchContent];
            else
            return "";
        });
        return strResult;
    }
相关文章
相关标签/搜索