【问题标题】:coldfusion Rereplace function冷融合替换功能
【发布时间】:2012-12-11 03:30:19
【问题描述】:

我正在使用下面的 ColdFusion REreplace 函数

<cfset variables.sAddress = #left(trim(REReplace(arguments.address, "[^-0-9a-zA-Z_/-/']", "", "ALL")),50)#/> 其中 arguments.address 来自表单。

我正在使用 rereplace 函数删除特殊字符,这在其他页面上运行良好,但在这种情况下,在使用 rereplace 函数之前,它首先将特殊字符转换为它们的 html 等效字符,然后应用 rereplace 函数。

所以如果我将'test&test' 作为arguments.address1 传递,我得到的结果是'testamptest'

【问题讨论】:

  • 放置一些代码将有助于弄清楚。

标签: regex coldfusion


【解决方案1】:

您可能需要一个函数将 HTML 编码的文本转换为未编码的文本(将 HTML 实体改回原来的样子)。

这是我经常使用的:

// function to reverse HTMLEditFormat
function HtmlUnEditFormat( str )
{
    var lEntities = "&##xE7;,&##xF4;,&##xE2;,Î,Ç,È,Ó,Ê,&OElig,Â,«,»,À,É,≤,ý,χ,∑,′,ÿ,∼,β,⌈,ñ,ß,„,´,·,–,ς,®,†,⊕,õ,η,⌉,ó,­,>,φ,∠,‏,α,∩,↓,υ,ℑ,³,ρ,é,¹,<,¢,¸,π,⊃,÷,ƒ,¿,ê, ,∅,∀, ,γ,¡,ø,¬,à,ð,ℵ,º,ψ,⊗,δ,ö,°,≅,ª,‹,♣,â,ò,ï,♦,æ,∧,◊,è,¾,&,⊄,ν,“,∈,ç,ˆ,©,á,§,—,ë,κ,∉,⌊,≥,ì,↔,∗,ô,∞,¦,∫,¯,½,¤,≈,λ,⁄,‘,…,œ,£,♥,−,ã,ε,∇,∃,ä,μ,¼, ,≡,•,←,«,‾,∨,€,µ,≠,∪,å,ι,í,⊥,¶,→,»,û,ο,‚,ϑ,∋,∂,”,℘,‰,²,σ,⋅,š,¥,ξ,±,ℜ,þ,⟩,ù,√,‍,∴,↑,×, ,θ,⌋,⊂,⊇,ü,’,ζ,™,î,ϖ,‌,⟨,˜,ú,¨,∝,ϒ,ω,↵,τ,⊆,›,∏,",‎,♠";
    var lEntitiesChars = "ç,ô,â,Î,Ç,È,Ó,Ê,Œ,Â,«,»,À,É,?,ý,?,?,?,Ÿ,?,?,?,ñ,ß,„,´,·,–,?,®,‡,?,õ,?,?,ó,­,>,?,?,?,?,?,?,?,?,³,?,é,¹,<,¢,¸,?,?,÷,ƒ,¿,ê,?,?,?,?,?,¡,ø,¬,à,ð,?,º,?,?,?,ö,°,?,ª,‹,?,â,ò,ï,?,æ,?,?,è,¾,&,?,?,“,?,ç,ˆ,©,á,§,—,ë,?,?,?,?,ì,?,?,ô,?,¦,?,¯,½,¤,?,?,?,‘,…,œ,£,?,?,ã,?,?,?,ä,?,¼, ,?,•,?,«,?,?,€,µ,?,?,å,?,í,?,¶,?,»,û,?,‚,?,?,?,”,?,‰,²,?,?,š,¥,?,±,?,þ,?,ù,?,?,?,?,×,?,?,?,?,?,ü,’,?,™,î,?,?,?,˜,ú,¨,?,?,?,?,?,?,›,?,"",?,?";
    return ReplaceList(arguments.str, lEntities, lEntitiesChars);
}

【讨论】:

  • 感谢 Lucas,它确实有效,但我不明白为什么会这样。
  • 你从哪里得到论据?它来自已发布的表单吗?表单标签上的 enctype 是什么?正如 Pritesh 所说 - 我们需要您提供更多意见。
  • 遗憾的是,这在我的情况下不起作用,我无法确定故障点。最终,这是唯一对我有用的解决方案,#Replace(ARGUMENTS.fileName, "&amp", "&")#
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-19
  • 1970-01-01
  • 2011-07-02
  • 2011-02-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多