Tag: 逃避

在textareas中解析换行符而不允许所有html标签

我有一个textarea字段,用户可以在其中输入内容。 当在页面上显示它们的条目时,rails会为每个换行符返回\n ,这对于页面上的html显示为完全没有中断。 从我收集的内容来看,解决这个问题的标准方法是使用.gsub命令,用替换\n ,然后在末尾.html_safe以确保渲染。 问题是,我不想html_safe的内容 – html仍然应该被替换,但标签应该注入(非转义)内容。 建议表示赞赏。

如何保存unescaped和nokogiri xml?

如何使用nokogiri保存&在最终的xml文件中? 我的代码是这样的: require ‘rubygems’ require ‘nokogiri’ file_name = “amp.xml” @doc = Nokogiri::XML(”) arg = Nokogiri::XML::Node.new “arg”, @doc arg[‘line’] = “how to save only &???” @doc.root.add_child(arg) File.open(file_name, ‘w’) {|f| f.write(@doc.to_xml) } 而输出就像 UPDATE 看起来我可以使用CDATA,但不知道如何使用它与nokogiri。 我使用@doc = Nokogiri::XML(File.open(file_name))读取xml文件

Ruby – 寻找某种“Regexp unescape”方法

我有一堆带有特殊转义码的字符串,我想存储未转义 – 例如,解释器显示 “\\014\”\\000\”\\016smoothing\”\\011mean\”\\022color\”\\011zero@\\016″但我希望它显示(检查时)为”\014\”\000\”\016smoothing\”\011mean\”\022color\”\011zero@\016” 什么是取消它们的方法? 我想我可以制作一个正则表达式来从每个连续的n个反斜杠中删除1个反斜杠,但我没有很多正则表达式的经验,似乎应该有一个“更优雅”的方法来做到这一点。 例如,当我puts MyString它会显示我想要的输出,但我不知道如何将其捕获到变量中。 谢谢! 编辑添加上下文:我有这个类用于编组/恢复一些东西,但当我恢复一些旧的字符串时,它吐出一个类型错误,我已经确定是因为它们不是 – 因为一些莫名其妙的原因 – 存储为base64。 它们似乎刚刚被转义,这是我不想要的,因为尝试同样地恢复它们会产生TypeError TypeError: incompatible marshal file format (can’t be read) format version 4.8 required; 92.48 given TypeError: incompatible marshal file format (can’t be read) format version 4.8 required; 92.48 given因为Marshal查看字符串的第一个字符来确定格式。 require ‘base64’ class MarshaledStuff < ActiveRecord::Base validates_presence_of :marshaled_obj def contents obj = […]

Ruby:转义字符串中的特殊字符

我正在尝试编写一个与PHP中的mysqli_real_escape_string相同的方法。 它需要一个字符串并逃脱任何“危险”的角色。 我已经找了一种能为我做这个的方法,但我找不到一个。 所以我试着自己写一个。 这就是我到目前为止(我在Rubular.com测试了模式并且它有效): # Finds the following characters and escapes them by preceding them with a backslash. Characters: ‘ ” . * / \ – def escape_characters_in_string(string) pattern = %r{ (\’|\”|\.|\*|\/|\-|\\) } string.gsub(pattern, ‘\\\0’) # <– Trying to take the currently found match and add a \ before it I have no idea […]

将Ruby字符串编码为JSON字符串

json gem不允许将字符串直接编码为其JSON表示。 我暂时移植了这个PHP代码: $text = json_encode($string); 对这个Ruby: text = string.inspect 并且它似乎做了这项工作,但由于某种原因,如果string本身包含带换行符的文字字符串(它实际上是JS代码),这些新行\n将保持原样\n ,而不是编码为\\n 。 我能理解这是否是#inspect的正确行为,但…… 如何在Ruby中将字符串值编码为其JSON表示?

gsub中的反斜杠(转义和反向引用)

请考虑以下代码段: puts ‘hello’.gsub(/.+/, ‘\0 \\0 \\\0 \\\\0’) 这打印( 如ideone.com上所示 ): hello hello \0 \0 这是非常令人惊讶的,因为我希望看到类似的东西: hello \0 \hello \\0 我的论点是\是一个转义字符,所以你写\\得到一个字面反斜杠,因此\\0是一个字面反斜杠\后跟0 ,等等。显然这不是gsub如何解释它,所以有人可以解释这是怎么回事? 我需要做些什么来获得我想要的替代品呢?

Ruby 1.8的Shellwords.shellescape实现

虽然1.8.7的构建我似乎有一个backported版本的Shellwords::shellescape ,但我知道这个方法是一个1.9function,并且在早期版本的1.8中肯定不支持。 有没有人知道我能找到哪里,无论是Gemforms还是仅作为一个片段,一个强大的独立实现Bourne-shell命令逃避Ruby?

在Ruby中转义字符串中的双反斜杠和单反斜杠

我试图以这种格式在Windows平台上访问我的ruby脚本中的网络路径。 \\servername\some windows share\folder 1\folder2\ 现在,如果我尝试将其用作路径,它将无法工作。 对于此脚本,没有正确转义单个反斜杠。 path = “\\servername\some windows share\folder 1\folder2\” d = Dir.new(path) 我尝试了所有我能想到的东西来正确地逃避路径中的斜线。 然而,我无法摆脱那个单一的反斜杠 – 因为它具有特殊意义。 我尝试单引号,双引号,转义反斜杠本身,使用替代引号,如%Q {}或%q {},使用ascii转换为char。 从某种意义上讲,我没有做任何事情。 :-)现在临时解决方案是映射网络驱动器N:\指向该路径并以这种方式访问​​它,但这不是解决方案。 有谁知道如何正确逃脱单反斜杠? 谢谢

Ruby gsub不会逃避单引号

我不明白这里发生了什么。 我应该如何提供gsub来获取字符串“Yaho \’o”? >> “Yaho’o”.gsub(“Y”, “\\Y”) => “\\Yaho’o” >> “Yaho’o”.gsub(“‘”, “\\'”) => “Yahooo”