Javascript正则表达式:如果尚未替换,则用URL替换字符串
我试图用String.replace解决以下问题: 我有一个随机文本,其中包含一些系统中的票证ID,例如JIRA-123。我想用降价链接替换,如下所示:Javascript正则表达式:如果尚未替换,则用URL替换字符串,javascript,regex,Javascript,Regex,我试图用String.replace解决以下问题: 我有一个随机文本,其中包含一些系统中的票证ID,例如JIRA-123。我想用降价链接替换,如下所示: text.replace(/(JIRA-\d+)/g,“[$1](example.com?id=$1)” 我正在努力解决的问题是,我希望这个操作是幂等的,也就是说,如果一个给定的ID已经包装在URL中,我希望它被忽略,我正在努力找出一个正确的表达式来实现这一点 有什么帮助吗?首先,generateLink($1”)不起作用。@WiktorStr
text.replace(/(JIRA-\d+)/g,“[$1](example.com?id=$1)”代码>
我正在努力解决的问题是,我希望这个操作是幂等的,也就是说,如果一个给定的ID已经包装在URL中,我希望它被忽略,我正在努力找出一个正确的表达式来实现这一点
有什么帮助吗?首先,generateLink($1”)
不起作用。@WiktorStribiżew fixedYes,所以只需遵循第二个链接线程:交替使用标记URL模式(p1)和普通URL正则表达式(p2),捕获需要保留的内容,只修改匹配和未捕获的内容(即s.replace(/(p1)| p2/g,(x,y)=>y?x:process(x))
@WiktorStribiżew票证id/(JIRA-\d+)/g
表达式在这个解决方案中适用于哪里?好的,我想你的意思是p2是一个票证模式-我想我让它工作了,谢谢:)