首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将javascript中的[some_text](some_text)替换为[[some_text]](some_text)

如何将javascript中的[some_text](some_text)替换为[[some_text]](some_text)
EN

Stack Overflow用户
提问于 2021-07-22 17:19:26
回答 1查看 27关注 0票数 0

注意,我只需要对符合这个模式的单词进行替换,@[some_text](some_text)

以下是一些输入和预期输出的示例:

输入:thanks @[said](said_Id) for helping me with [PCM]

输出:thanks @[[said]](said_Id) for helping me with [PCM]

输入:thanks @[said](said_Id) @[john](jhon_doe_id)

输出:thanks @[[said]](said_Id) @[[jhon]](jhon_does_id)

输入:thanks @[said](said_Id) some text @[john](jhon_doe_id) some text @[alex](alex-id)

输出:thanks @[[said]](said_Id) @[[jhon]](jhon_does_id) some text @[[alex]](alex-id)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-22 17:26:40

代码语言:javascript
复制
input.replace(/@\[(.*?)\](\(.*?\))/g, '@[[$1]]$2')

霸王龙爆发了:

代码语言:javascript
复制
@\[(.*?)\]  <-- match the pattern @[anything]  
(\(.*?\))  <--- match (anything)
/@\[(.*?)\](\(.*?\))/g  <--- globally match all @[anything](anything)

替换部分从搜索中获取括号中的主题,并按外观顺序替换它们($1,$2) --在本例中,它正在重建它在搜索@[[$1]]$2中找到的字符串

代码语言:javascript
复制
const fix = input => input.replace(/@\[(.*?)\](\(.*?\))/g, '@[[$1]]$2');
console.log(fix(`thanks @[said](said_Id) for helping me with [PCM]`))
console.log(fix(`thanks @[said](said_Id) some text @[john](jhon_doe_id) some text @[alex](alex-id)`))

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68489087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档