關於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;
    }
相關文章
相關標籤/搜索