javascript - Javascript:查找字符串中的所有提及操作并替换它们
问题描述
我想@mention
在评论中找到所有出现的地方并用不同的格式替换它们。
我有这个正则表达式,它对所有出现的事件进行分组,但所有这些我都必须为 Jira ( [~string]
) 操作这些字符串,并将它们重新插入原始字符串。
comment.match(/[ ]@[^\s]+/g);
有没有更好的办法?
输入的评论:
guiyjhk @test hgjhgjh test@this_is.test2 jhgjhgjh @this_is.test2
这是我想要返回的:
guiyjhk [~test] hgjhgjh test@this_is.test2 jhgjhgjh [~this_is.test2]
解决方案
您可以使用正则表达式匹配捕获 the 之后的部分@
和之前的空格并用于replace()
替换这些匹配项。这将允许您匹配@mention
被空格包围的同时避免test@this_is.test2
let comment = "guiyjhk @test hgjhgjh test@this_is.test2 jhgjhgjh @this_is.test2"
// catch space then @ then non-space replace with space(s)[non-space]
comment = comment.replace(/([\s+])@([^\s]+)/g, "$1[~$2]");
console.log(comment)
推荐阅读
- c++ - 交叉引用标头中的错误“未终止的条件指令”
- javascript - 两端都可以理解通过不同语言编写的套接字发送/接收的数据吗?
- cordova - 来自 MobileApplication 的 IBM MobileFirst Platform v8.0 Https 连接
- c# - FCM 和 xamarin.android - 广播接收器不起作用
- javascript - JavaScript 替换功能不起作用
- javascript - 使用 jQuery html() 时在 html 中显示的特殊字符
- java - 如何在端口后的 URL 中使用应用程序名称(就像我们在 tomcat 部署的应用程序中所做的那样)在 GWT 应用程序中调用 REST Web 服务?
- html - Bootstrap align div correctly
- c++ - 在 C++ 中与 COM PORT 通信
- openoffice-calc - OpenOffice Calc:计算单元格范围内的唯一字符串