【发布时间】: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