【问题标题】:Process ASCII codes present in string处理字符串中存在的 ASCII 码
【发布时间】:2014-02-27 17:33:57
【问题描述】:

好的。这可能是一个愚蠢的问题,但我被卡住了。

在我的 javascript 中,我有一个包含 ' 的字符串变量,它代表单引号。例如some_text_'_some_text 现在,我想将其替换为实际的单引号,例如 some_text_'_some_text

明显的方法是使用str.replace(/'/g,"'"),但问题是我将此javascript代码写入第三方软件,当我保存脚本时将'替换为'。所以,如果我再次打开脚本,它会显示str.replace(/'/g,"'")。所以当脚本运行时,它并没有正确地做替换操作。

有人会问我为什么需要这个替换才能工作?
原因是这个变量被传递来构建一个 SQL 查询,我不想在我的查询中使用'。我希望它是 ' 而不是我可以在 SQL 中转义。

编辑
所以,我意识到了这种行为的原因,潜在的回答者可能想要考虑到这一点。我使用的软件将其所有文件都存储为 XML,包括我编写的 javascript 代码。因此,它在保存时将所有特殊字符转换为 HTML 代码,并在读取时将它们解析回来。这就是' 转换为' 的原因。

【问题讨论】:

  • 您需要解码您的 html 实体。看看这个答案:) stackoverflow.com/questions/5796718/html-entity-decode
  • 另外 - 您可以在大多数服务器端脚本中更轻松地完成此操作。即使用 PHP,您可以使用 htmlspecialchars_decode 然后转义它。
  • str.replace(/'/g,"'")?
  • 如果@Bergi 的建议没有帮助,请尝试通过str.replace(new RegExp("&"+"#"+"x27;", "g"), "'") 之类的东西来欺骗软件……尝试将that 识别为数字字符引用,你这个鬼鬼祟祟的小第三者派对破坏软件!
  • @Bergi:出于某种原因,它不起作用。您可能希望将其发布为答案,以防将来有人遇到同样的问题并且您的答案对他/她有用。并感谢您的帮助。

标签: javascript


【解决方案1】:

如果@Bergi 的建议没有帮助,请尝试通过类似的方式欺骗​​软件

str.replace(new RegExp("&"+"#"+"x27;", "g"), "'")

--基本上是把数字字符引用分成几块,这样搞事情的软件就认不出来了。

【讨论】:

  • 这对我有用。尽管对于有类似问题的其他人,@Bergi 的回答也可能有效。
  • 我仍然需要这个答案。对于 ref,这个问题基本上就像 stackoverflow.com/questions/8482949/… 但与 ' (以前)通过 JSON 加载的 XML 数据中的撇号字符
猜你喜欢
  • 2013-03-22
  • 1970-01-01
  • 2013-07-13
  • 1970-01-01
  • 1970-01-01
  • 2019-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多