处理字符串中的ASCII码

3

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

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

显然的方法是使用str.replace(/'/g,"'"),但问题是我将这个javascript代码写入第三方软件时,该软件会在保存脚本时将'替换为'。因此,如果我再次打开脚本,它就会显示str.replace(/'/g,"'")。因此,当脚本运行时,它不会正确地执行替换操作。

你可能会问我为什么需要这个替换?
原因是这个变量被传递给构建SQL查询,我不想在查询中出现',我希望它是',这样我可以在SQL中进行转义。

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


你需要解码你的 HTML 实体。看一下这个答案 :) https://dev59.com/Nm025IYBdhLWcg3wyZIn - dev7
另外,在大多数服务器端脚本语言中,你可以更轻松地完成这个任务。例如,在 PHP 中,你可以使用 htmlspecialchars_decode 然后进行转义。 - dev7
2
str.replace(/'/g,"'")? - Bergi
1
如果@Bergi的建议没有帮助,请尝试通过类似于str.replace(new RegExp("&"+"#"+"x27;", "g"), "'")这样的方式欺骗软件... 尝试将其识别为数字字符引用,你这个狡猾的第三方软件! - CBroe
@Bergi:由于某些原因,它没有起作用。如果将其发布为答案,以防将来有人遇到相同的问题并且您的答案对他/她有效,那么您可能希望这样做。感谢您的帮助。 - tumchaaditya
@CBroe:这个方法可行。你能把它发表为答案,这样我就可以标记为已接受吗? - tumchaaditya
1个回答

6
如果 @Bergi 的建议没有帮助,请尝试通过类似以下方式欺骗软件:
str.replace(new RegExp("&"+"#"+"x27;", "g"), "'")

基本上是将数字字符引用分成几个部分,这样处理内容的软件就不能再将其识别为字符引用。


这对我起作用了。尽管对于有类似问题的其他人,@ Bergi的答案也可能有效。 - tumchaaditya
仍需要这个答案。参考一下,这个问题基本上就像 https://dev59.com/dV7Va4cB1Zd3GeqPHzoO,但是涉及到从(之前)通过JSON加载XML数据中的 ' 省略号字符。 - TimDC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接