正则查找并替换字符串

var o = {
    myName: 'Willy Leung',
    sex: 'Male'
}

var str = '<p>${myName}</p><p>${sex}</p>';

/*var getMatchedStrs = function (str) {
    var reg = /\$\{(.+?)\}/
    var reg_g = /\$\{(.+?)\}/g
    var result = str.match(reg_g)
    var list = []
    for (var i = 0; i < result.length; i++) {
        var item = result[i]
        list.push(item.match(reg)[1])
    }
    return list
}*/

// 推荐
var getExecStrs = function (str, value) {
    var reg = /\$\{(.+?)\}/g
    var list = []
    var r = null
    var res = str
    do {
        r = reg.exec(str)
        if (r) list.push(r[1])
    } while (r)

    for (var item of list) {
        var reg = new RegExp('[\$][\{]' + item + '[\}]', 'gm')
        if (value[item]) res = res.replace(reg, value[item])
    }
    return res
}

console.log(getExecStrs(str, o)); //<p>Willy Leung</p><p>Male</p>
const str = 'My name is ${name}, she is not ${name}.'
const r = str.replaceAll('${name}', 'Willy Leung')
console.log(r)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值