2

我有一个名为 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;(开头没有 & )。结果全都&nbsp;变成了&amp;。然后我尝试<cfset htmlcode = ReplaceNoCase(htmlcode, "&amp;", "", "all")>了,但这并没有删除任何出现的&amp;.

应该怎么做?

4

4 回答 4

5

To strip &nbsp you need to search for chr code 160.

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

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

于 2014-04-22T02:15:21.180 回答
0

使用下面的,它的工作。您应该检查变量名称并确保将固定字符串重新分配给变量。在测试和尝试回答您的问题时遇到了同样的问题。

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

如果它仍然不起作用,请查看功能HTMLEditFormat

于 2013-09-03T12:52:44.097 回答
0

好先生,

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

<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>

您可以在此 URL 上查看结果。

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

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

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

于 2013-09-03T13:45:30.207 回答
-1

尝试这个

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

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

将此代码粘贴到此处

<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 上。希望这可以帮助。

于 2013-09-03T12:46:44.580 回答