使用replace修复字符串中的url

时间:2015-05-20 19:26:10

标签: coldfusion

我正在使用cfx_http5标签进行cfhttp调用,因为它比cfhttp更快更好。所以链接来了:

<a href="/e9.asp?rpttype=298&sortBy=1&sortOrder=2">sort A</a>

所以我使用替换

添加以下脚本
http://mysubdomain.domain.com/http://mysubdomain.domain.com/e9.asp?rpttype=298&sortBy=1&sortOrder=2

<cfset lnk = ReplaceNoCase(objget, 'href="', 'href="http://mysubdomain.domain.com/', 'all')>

在很少的链接中,它是正确的,但在很少的链接中,它如上所述,在已经存在的链接上添加一个,

所以我想让它有条件,如果它存在,不要追加或添加,否则添加如果没有链接

任何想法?

2 个答案:

答案 0 :(得分:1)

您可以regular expressions使用negative lookahead,如下所示:

<cfset lnk = reReplaceNoCase(objget, 'href=\"(?!http\:\/\/)','href="http://mysubdomain.domain.com', 'ALL')>

这适用于两种类型的链接。

答案 1 :(得分:0)

只需创建条件if语句

lnk = 'http://mysubdomain.domain.com/e9.asp?rpttype=298&sortBy=1&sortOrder=2';
if (!findNoCase('mysubdomain.domain.com', lnk)) {
  lnk = ReplaceNoCase(objget, 'href="', 'href="http://mysubdomain.domain.com/', 'all');
}