在coldfusion中删除

时间:2013-09-03 11:57:58

标签: coldfusion replace

我有一个叫做htmlcode的var:

  <table width="600" align="center" cellspacing="0" cellpadding="0">
        <tbody>
            <tr>
             <td colspan="3">&nbsp;</td>
            </tr>
            <tr>
             <td colspan="3"><img width="600" height="60" alt="" src="nieuwsbrief_banner.gif</td>
            </tr>
            <tr>
             <td colspan="3">&nbsp;</td>
            </tr>
     </tbody>
   </table>

我想删除所有出现的&nbsp;。我能够替换字符串中的其他字符,但似乎无法将&nbsp;替换为空字符串(“”)。我这样做了:

<cfset htmlcode = Replace(htmlcode, "&nbsp;", "", "all")>

我也尝试替换nbsp;(没有&amp;开头)。结果是所有&nbsp;都已更改为&amp;。然后我尝试了<cfset htmlcode = ReplaceNoCase(htmlcode, "&amp;", "", "all")>,但这并没有删除任何&amp;

该怎么办?

4 个答案:

答案 0 :(得分:3)

要剥离&nbsp,您需要搜索chr代码160。

<cfset htmlcode = Replace(htmlcode, chr(160), "", "all")>

http://www.cjboco.com/blog.cfm/post/table-of-ascii-characters-and-symbols-for-coldfusion/

答案 1 :(得分:0)

使用下面的内容并且有效。您应检查变量名称并确保将固定字符串重新分配给变量。在测试并尝试回答您的问题时遇到同样的问题。

<cfset htmlcode = Replace(htmlcode, "&nbsp;", " ", 'all')>

如果它仍然不起作用,请查看函数HTMLEditFormat

答案 2 :(得分:0)

Nicemister,

我知道这令人沮丧,但事实是上面的替换代码确实适用于您发布的字符串。看看这个。

<Cfsavecontent variable="myhtml">
<table width="600" align="center" cellspacing="0" cellpadding="0">
        <tbody>
            <tr>
             <td colspan="3">&nbsp;</td>
            </tr>
            <tr>
             <td colspan="3">some image</td>
            </tr>
            <tr>
             <td colspan="3">&nbsp;</td>
            </tr>
     </tbody>
   </table>


</Cfsavecontent>

<cfoutput>#myhtml#</cfoutput>
<hr>
<Cfset myHTML = Replace(myhtml, "&nbsp;", "", "all")>

<Cfoutput>#myhtml#</CFOUTPUT>

您可以在此网址查看结果。

http://www.coldfusionmuse.com/test/myhtml.cfm

转到“查看源”,您会看到 - 第一个表有空格而第二个表没有空格。正如怀疑(正如Peter和Adam和Ray所说)你的输入“Htmlcode”变量不包含你认为它的字符串&nbsp;

另请注意,在上面的代码中,您缺少img的结束标记。

答案 3 :(得分:-1)

试试这个

<cfset htmlcode = Replace(htmlcode, " ", "", "all")>

如果您的html代码包含textarea,则不会“检测到”。

粘贴此代码Here

<cfoutput>
<cfsavecontent variable="htmlcode">
textarea:<textarea>1 2&nbsp;2</textarea><br />
div:<div>1&nbsp;2&nbsp;</div>
</cfsavecontent>
before:<br />
#htmlcode# <br />
<cfset htmlcode = Replace(htmlcode, "&nbsp;", "", "all")>
after:<br />
#htmlcode#
<cfset htmlcode = Replace(htmlcode, " ", "", "all")>
after after:<br />
#htmlcode#
</cfoutput>

你可以看到你的替换完全正常,但不是textarea。 希望这会有所帮助。