关于字符串替换的两种方法

用途

很多时候我们会遇到后台返回的是一个参数,还需要有一个对照表进行数据替换,替换后再进行文本展示,但有的时候后台传递的参数是几个又不太能确定,所以简单写了个解决

方法

方法的话有两种,一种是根据后端传递的数据分割符号进行分割,分割后for循环逐一替换后再拼接成字符串返回,第二种是通过replace方法进行regexp判断后直接替换。

首先整个对照表出来

//数据对照
var obj = {
	'abc' : '123',
	'bcd' : '234',
	'dcd' : '567'
}
//需转化字符串
var str = 'abc abc bcd 我的天 dcd'

分割法

function replaceTip(txt){
	var newStr = '';
	//通过空格分割原字符串放入数组
	var arr = txt.split(' '); 
	for(var i = 0; i < arr.length; i++){
		//判断原字符串是否存在不需转化字段
		if(obj[arr[i]]){
			arr[i] = obj[arr[i]]
		}
		if(i < arr.length){
			//拼接新字符串
			newStr += arr[i]+" "
		}
	}
	return newStr;
}
console.log(replaceTip(str))

replace()替换

function replaceTip(txt){
	//通过for in 取出obj对应的key
	for(itm in obj){
		var tmp = obj[itm]
		//通过RegExp函数作为判断依据
		//第二个参数g代表替换字符串中的所有
		//不加g直接replace(arg1, arg2)默认只把第一个arg1替换为arg2
		var reg = new RegExp(itm,'g')
		txt = txt.replace(reg,tmp)
	}
	return txt;
}
console.log(replaceTip(str))

总结

方法很简单…就是在此之前想岔了写了两层循环还替换不了,有点犯蠢,写下以作记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值