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

题目描述

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

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

思路解析

整个过程可以大致分成以下步骤:
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;
	}
posted @ 2016-10-25 17:51  Mr-inlin  阅读(421)  评论(0编辑  收藏  举报