使用一些技术来修复网址

时间:2015-06-08 17:56:45

标签: regex coldfusion

我从url页面请求获得cfhttp

<a href="http://subdomian.maindomain.com/javascript:popOne('http://www.rs.com ')">http://www.rs.com</a>

我正在尝试将其替换为:

<a href="http://www.rs.com" target="_blank">http://www.rs.com</a>
rs.cfm每次都会动态,它可以是sb,sd,ge等等

我希望将目标添加到a href

像这样尝试

<cfset lnk = replace(cfhttp.filecontent,'subdomian.maindomain.com/http://www.al.com/','http://www.al.com/','ALL')>

这适用于名称为al的一种情况,但不添加目标属性。还

2 个答案:

答案 0 :(得分:0)

以下内容应该有效。 注意:我没有测试过这段代码。我会把它留给你。

您的开头字符串是:

http://subdomain.maindomain.com/javascript:popOne('http://www.rs.com ')

您可以通过执行以下操作删除开头部分:

<cfset lnk = "http://subdomain.maindomain.com/javascript:popOne('http://www.rs.com ')">
<cfset lnk = ReplaceNoCase(lnk,"http://subdomain.maindomain.com/javascript:popOne('")>

这应该将lnk设置为以下内容:

http://www.rs.com ')

现在你需要像这样删除尾随部分:

<cfset lnk = ReplaceNoCase(lnk," ')")>  <!--- remove the space as well --->

哪个应该留下您想要的网址:

http://www.rs.com

现在只需根据需要创建HTML输出:

<cfoutput>
<a href="#lnk#" target="_blank">#lnk#</a>
</cfoutput>

此示例代码假定像subdomain.maindomain.com ...这样的字符串不会更改。如果字符串是动态的,那么此代码将无法工作,需要修改为可能使用正则表达式

全部放在一起:

<cfset lnk = "http://subdomain.maindomain.com/javascript:popOne('http://www.rs.com ')">
<cfset lnk = ReplaceNoCase(lnk,"http://subdomain.maindomain.com/javascript:popOne('")>
<cfset lnk = ReplaceNoCase(lnk," ')")>  <!--- remove the space as well --->

<cfoutput>
<a href="#lnk#" target="_blank">#lnk#</a>
</cfoutput>

希望有所帮助。

答案 1 :(得分:0)

请尝试此功能:

 <cffunction name="convertLink">
    <cfargument name="siteLink" required="true" type="string">
    <cfset extractedLink = listGetAt(replace(replace(arguments.siteLink, "('", "||", "all"), "')", "||", "all"), 2, "||")>
    <cfreturn '<a href="' & extractedLink & '" target="_blank">'& extractedLink & '</a>'>
</cffunction>