请教一个正则问题,如以下字符串该如何提取呢

去除$里面的内容但要包括[]里面的内容
let str = "点击下方链接跳转123$br$$externalLink$[水之光剧场](/pages/index/index?appid=w1)$externalLink$"
期待的结果是:
let str = "点击下方链接跳转123水之光剧场"
谢谢大家
阅读 1.3k
2 个回答
"点击下方链接跳转123$br$$externalLink$[水之光剧场](/pages/index/index?appid=w1)$externalLink$"
    .replace(/\$[^$]*\$/g,'')
    .replace(/\[([^\]]*)\]\([^)]*\)/g,'$1')

看上去是两个规则,一个是 $$ 连带中间内容都舍弃。一个是 []() 里面只要方括号中的。

image.png

str.replace(/([[($])(.*?)([\])$])/g, function(match, $1, $2, $3) {
    var pair = { $: "$", "[": "]", "(": ")" };
    return pair[$1] !== $3 ? match : $1 === "[" ? $2 : "";
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题