js 如何过滤不想要的字符串?

image.png

这是后端返回的数据,需要前端自行处理
我用js该怎么拿到里面的json对象呢?

阅读 3.4k
4 个回答
const user = demo('回复@@@<{"name": "张三"}>@@@:不错')
console.log('user', user) // => {name: "张三"}

function demo (str) {
  let item = {};
  str.replace(/(@@@<)(.*?)(>@@@)/, function (g, $1, $2, $3) {
    try { item = JSON.parse($2) } catch (e) {}
  })
  return item
}

正则表达式匹配大括号,截取

function getObj(strData){
    if(!strData) return {}
    let arr=strData.split('@@@')
    let obj={}
    try{
        obj=(arr.length && JSON.parse(arr[1].substr(1,arr[1].length-2))) || {}
    }catch(e){}
    return obj
}
getObj('回复@@@<{"name": "张三"}>@@@:不错')

JSON.parse() 就可以吧 然后返回的数据只要{}里面的东西 你看你们后台有什么规律 ,如果是根据@@@< >@@@的格式的话 用str.match(/@@@<(S*)>@@@/)[1] 就能取到{}

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