【问题标题】:Ruby code adding single \ to escape #, instead of adding \\ [closed]Ruby代码添加单个\来转义#,而不是添加\\ [关闭]
【发布时间】:2020-01-08 07:07:40
【问题描述】:

ruby 添加单个 \ 以转义 # 而不是双反斜杠

例如,字符串sd@# 中的# 会自动以单个\ 开头,例如sd@\#。我认为应该添加\\(双反斜杠)来转义#

这是 ruby​​ 语法中的错误吗?如果没有,有没有办法手动逃脱它

请帮忙

【问题讨论】:

  • 说实话,我完全不明白你的问题。您甚至不必在 Ruby 字符串中转义 #
  • 我没有手动转义,我正在处理 react-on-rails 项目,每当我从反应表单提交字符串 ''sd@#'' 时,字符串都会转换为 "' sd@\#'"(ruby 在 ruby​​ 端添加一个 \ 而不是 \\),它变成一个无效的字符串。
  • 你确定 Ruby 会这样做吗?参数中传递了什么?
  • 是的,ruby 正在添加它
  • 显示代码发生的地方。

标签: ruby ruby-on-rails-3 react-on-rails


【解决方案1】:

您可以使用单个 \ 转义 #。此外,无需在字符串中转义 #mystring#mystring\# 都会给出输出 mystring#

【讨论】:

  • 抱歉不清楚,但这里的问题是字符串作为 json 发送到服务:{"description"=>"sd@\#"} 这是一个无效的 json跨度>
  • "没有必要在字符串中转义#"——除非你想抑制插值,例如"#$$""\#$$" 给出完全不同的结果。
  • 如果你想将它作为 json 传递,最好使用 JSON.generate()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-15
  • 2010-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多