gpt4 book ai didi

ruby - 如何在 Ruby 中取消转义 JavaScript 字符串

转载 作者:太空宇宙 更新时间:2023-11-03 17:52:04 24 4
gpt4 key购买 nike

在 Ruby 中对以下字符串进行转义的最简单方法是什么。

示例输入

str = "\\u003Cul id=\\\"list_example\\\"\\u003E\\n\\t\\u003Cli class=\\\"item_example\\\"\\u003EHello\\u003C/li\\u003E\\n\\u003C/ul\\u003E\\n\\n"
puts str # => \u003Cul id=\"list_example\"\u003E\n\t\u003Cli class=\"item_example\"\u003EHello\u003C/li\u003E\n\u003C/ul\u003E\n\n
str.encoding # => #<Encoding:UTF-8>

期望的输出

puts str #=>
<ul id="list_example">
<li class="item_example">Hello</li>
</ul>

最佳答案

该字符串被转义了两次。有几种方法可以避免它。最简单的是 eval,但如果您不信任输入,它就不安全。但是,如果您确定这是一个由 ruby​​ 编码的字符串:

print eval(str)

更安全:

print YAML.load(%Q(---\n"#{str}"\n))

如果是javascript转义的字符串:

print JSON.load(%Q("#{str}"))

另见 Best way to escape and unescape strings in Ruby?

关于ruby - 如何在 Ruby 中取消转义 JavaScript 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22772241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com