Coldfusion - Twitter风格提到链接记录

时间:2014-02-06 17:38:13

标签: regex coldfusion

想知道是否有人能指出我正确的方向。

我建立的系统允许用户向记录添加评论。如果用户想要在他们的评论中引用另一条记录,我希望他们能够使用@符号后跟5位数的记录ID。

例如,当用户提交评论时,例如" 此记录的更新详细信息并记录@ 25645 "我需要在" @ 25645"周围输出一个href。这将链接到相关记录。

我尝试使用REReplaceNoCase但成效有限。

<cfset LinkableComments = REReplaceNoCase(Comments, "@[0-9][0-9][0-9][0-9][0-9]", "<a href=""detailPage.cfm?ID=Test"">Test</a>", "all") />

我无法弄清楚如何将记录ID反馈到网址中。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

Leigh是正确的,你可以像这样使用后退参考:

<cfset LinkableComments = REReplaceNoCase(Comments, "@([0-9][0-9][0-9][0-9][0-9])", "<a href=""detailPage.cfm?ID=\1"">@\1</a>", "all") />

基本上你要在()内放置你想要捕获和替换的正则表达式“组”,然后在替换参数中引用\1(因为这是第一组,\ 2为第二组,等等......)

亲自试用here(&lt; - 编辑: Gist已更新,以显示@PeterBoughton建议的@([0-9]{5})语法)< / p>

答案 1 :(得分:1)

根据REReplace上的文档,您应该能够使用以下内容:

REReplaceNoCase(Comments, "@([0-9]{5})", "<a href=""detailPage.cfm?ID=\1"">Test</a>", "all")

我将测试我的CF服务器何时重新启动