Ruby 删除`\";`从弦轨4
我有一些参数,比如:Ruby 删除`\";`从弦轨4,ruby,string,ruby-on-rails-4,Ruby,String,Ruby On Rails 4,我有一些参数,比如: params[:id]= "\"ebfd11a9-3aa4-415a-ba72-1b6796ea1bf6\"" 我希望得到如下预期结果: "ebfd11a9-3aa4-415a-ba72-1b6796ea1bf6" 我该怎么做?您可以使用gsub: "\"ebfd11a9-3aa4-415a-ba72-1b6796ea1bf6\"".gsub("\"", "") => "ebfd11a9-3aa4-415a-ba72-1b6796ea1bf6" 或者,如@Ste
params[:id]= "\"ebfd11a9-3aa4-415a-ba72-1b6796ea1bf6\""
我希望得到如下预期结果:
"ebfd11a9-3aa4-415a-ba72-1b6796ea1bf6"
我该怎么做?您可以使用
gsub
:
"\"ebfd11a9-3aa4-415a-ba72-1b6796ea1bf6\"".gsub("\"", "")
=> "ebfd11a9-3aa4-415a-ba72-1b6796ea1bf6"
或者,如@Stefan所述,删除
:
"\"ebfd11a9-3aa4-415a-ba72-1b6796ea1bf6\"".delete("\"")
=> "ebfd11a9-3aa4-415a-ba72-1b6796ea1bf6"
如果这是JSON数据,很可能是这种格式:
JSON.load(params[:id])
这将处理其中有转义字符串或参数是数组的情况。只需使用tr强>
params[:id].tr!("\"","")
tr!!也将更改主字符串
如果不想更改主字符串,请使用:
params[:id].tr("\"","")
谢谢Ilya最好使用不带感叹号的
tr
,除非您想修改源代码stringRails应该自动解析JSON数据。它只能通过POST来完成。如果这是通过GET实现的,它将不会经过相同的处理程序,并且很容易使用错误序列化的查询参数进行AJAX调用。JSON.load(params[:id])
在这种特定情况下会有所帮助,但如果数据输入正确,则会导致分析错误。@Stefan如果数据输入正确,则此问题不会出现在堆栈溢出上。这可以更好地处理更奇特的情况,但不会降低性能。其他参数会降级,但会损坏更复杂的参数。至于哪一个更好,这是个掷硬币的问题。你是对的,但我不确定你的方式是否正确。我不认为其他人处理得更好(盲目删除字符很容易损坏数据)。我只是认为你不应该定制一个API来处理无效的请求或数据。这些数据来自哪里,即谁提出了请求?你也可以使用delete
删除单个字符,它比gsub
的开销要小。