用途
很多时候我们会遇到后台返回的是一个参数,还需要有一个对照表进行数据替换,替换后再进行文本展示,但有的时候后台传递的参数是几个又不太能确定,所以简单写了个解决
方法
方法的话有两种,一种是根据后端传递的数据分割符号进行分割,分割后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))
总结
方法很简单…就是在此之前想岔了写了两层循环还替换不了,有点犯蠢,写下以作记录