怎么批量对象里的字符串进行处理?

新手上路,请多包涵

let list = [
{name:"张(三)",address:"北(京)"},
{name:"李(四)",address:"上(海)"},
{name:"(王)二",address:"(重)庆"},
{name:"(刘)五",address:"(天)津"}
]

前端怎么将括号里的字变颜色,并且去掉括号??

阅读 1.5k
2 个回答

可以写个函数专门处理字符串

function format(str) {
    // 正则匹配(***)
    return str.replace(/\([^()\s]*\)/g, (str, match) => {
        return `<span style="color:red;">${str.substring(1, str.length - 1)}</span>`
    })
}

以react为例,展示的时候可以使用 dangerouslySetInnerHTML

<div dangerouslySetInnerHTML={{ __html: format("张(三)") }}></div>

简单思路,先转成字符串,再替换。

let list = [
{name:"张(三)",address:"北(京)"},
{name:"李(四)",address:"上(海)"},
{name:"(王)二",address:"(重)庆"},
{name:"(刘)五",address:"(天)津"}
]
let str = JSON.stringify(list);

let map = {'三': 'red', '京': 'black'}

Object.keys(map).forEach((item) => { 
  str = str.replace(new RegExp(`\\(${item}\\)`, 'gm'), map[item])      
})

console.log(str);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题