案例:批量替换字符、查询字符串和对象之间的转换

一、敏感词替换

var origin = 'asHHdadHHsfHHdagHHfas'

var s = 'HH'

// code run here ...

// 结果 : 'as**dad**sf**dag**fas'
console.log(origin)

    // 敏感词替换
    var origin = 'asHHHdMMadHHsNNfHHdNNaMMgHHfas'
    var s = 'HH'
    console.log('原来的字符串:'+origin);
    // 第一种
    // // 当我查找到s的时候,进行替换
    while(origin.indexOf(s) != -1){
        origin=origin.replace(s,'**')
    }
    console.log('替换之后的字符串:'+origin);
    
    // 第二种
    console.log(origin.split(s).join('**'));
    
    // 第三种
    for(var i = 0; i < origin.length; i++){
        if(origin.indexOf(s) != -1){
        origin=origin.replace(s,'**')
    }
    
    }    
    console.log('替换之后的字符串:'+origin);

二、批量替换敏感词

var origin = 'asHHdMMadHHsNNfHHdNNaMMgHHfas'

var a = [ 'HH', 'MM', 'NN' ]

// code run here ...

// 结果 : 'as**d**ad**s**f**d**a**g**fas'
console.log(origin)

    // 批量替换敏感词
     var str = 'asHHdMMadHHsNNfHHdNNaMMgHHfas'
    var a = [ 'HH', 'MM', 'NN' ]
    // 先对数组进行遍历把字符串取出来
    // 第一种
    for(var j = 0;j < a.length;j++){
        for(var i = 0; i <= str.length ;i++){
            str=str.split(a[j]).join('**')    
        }
    }     
    console.log(str); 
    // 第二种
    a.forEach(function(item){
        // console.log(item);
        str = str.split(item).join('**')

    })
    console.log(str);

 三、把查询字符串变成对象

// 字符串格式
var str = 'name=Jack&age=18&gender=男'

// code run here ...

// 结果: { name: 'Jack', age: '18', gender: '男' }

    // 解析字符串
    var origin = 'name=Jack&age=18&gender=男'
    // 设置一个空对象
    var obj = {}
    // 这里转换成数组
    var arr = origin.split('&').join(' ').split('=').join(' ').split(' ')
    console.log(arr);
    // 把数组中的每一个值进行判断,并赋给对象
    for(var i=0;i<arr.length;i++){
        if(i%2==0){
            // 第一个arr[i]是键,arr[i+1]是值
            obj[arr[i]]=arr[i+1]
        }
    }
    console.log(obj);

    //第二种

    function queryString(str){
    // 要返回一个对象,首先应该出现一个对象
    var obj = {}
    // 这里开始转换
    // 先进行分割
    var res = str.split('&')
    // 循环遍历
    res.forEach(function(item){
        // 进行再次分割,去掉==
        var res1 = item.split('=')
        // 把对应的内容添加至对象中
        obj[res1[0]] = res1[1]
    })
    // 这里进行返回对象
    return obj
}

四、把对象变成查询字符串

// 原始数据
var str = { name: 'Jack', age: '18', gender: '男' }

// code run here ...

// 结果: 'name=Jack&age=18&gender=男'

//第一种
// 把对象变成查询字符串
function parseQueryString(obj){
    // 先定一个一个空的字符串
    var str = ''
    // 拿到对象中的 k value
    for(var k in obj){
        // 进行拼接
        // str += k + '=' +obj[k] + '&'
        str += `${k}=${obj[k]}&`
    }
    // 把最后的一个&去掉就可以了
    // str = str.slice(0,str.length - 1)
    str = str.slice(0,-1)
    // 进行返回字符串
    return str
}
    

    //第二种
    // 把对象变成字符串类型
    var obj = { name: 'Jack', age: '18', gender: '男' }
    var str=''
    // 在这里遍历对象 取出k value ,并替换等于和&
    for(var k in obj){
        str += `${k}=${obj[k]}&`
        
    }
    var str2=str.slice(0,-1)
    console.log(str2);


    //第三种
    var res = []
    for (var k in obj) {
        res.push(k,'=',obj[k],' ')    
    }
    console.log(res.join('').trim().split(' ').join('&'));

    

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值