你所不知道的replace

 

差不多的replace,差不多的方法,你也差不多的用...(节奏有点邓紫棋的《差不多姑娘》)

 

众所周知,replace(params1,params2)有俩个参数,第一个为需要替换的原内容,第二个为最终要替换为的内容。

我这里的使用场景,匹配一段文本中所有带有书名号的书名,并将书名单独加标签并区别颜色

params1:其实也可以为一个函数,我们封装一个正则,如下:

regBook() {
    let reg = /《(.*?)》/g
    return reg;
}

将 regBook() 可以作为 params1

params2:其实同样可以作为一个函数,可以在函数中,操作输出你需要的结果:

let str = "这是一段文本,文本中夹杂着《书籍1》,《书籍2》,甚至还有《书籍3》以及其他书籍"
let new_str = str.replace(regBook(), key => {
    let node = '<span style="color: #409eff">' + key + "</span>";
    return node;
});
// 选择操作的节点
let element = this.$el.getElementsByClassName("className")[0]
element.innerHTML = new_str;
                   

好了,现在选中的节点中的书籍单独添加了标签,并区别了颜色。

replace的方法是不是大有不同呢,其实同理,其他方法和函数也都一样,参数都可以是函数,具体看自己的使用场景了,结合起来,就能达到意想不到的成果,可以解决很多棘手问题。

posted @ 2021-05-19 17:50  一杯龙井解千愁  阅读(141)  评论(0编辑  收藏  举报