我有删除\n和\r标签的问题.当我使用双引号时,它可以正常工作,否则就会离开"/".使用gsub,如果没有双引号则不起作用.为什么?
<%= "Remove \n".delete('\n') %>
result: "Remove"
<%= 'Remove \n'.delete('\n') %>
result: "Remove \"
Run Code Online (Sandbox Code Playgroud)
我发现这是因为结果它不适用于数据库的结果......
Ser*_*sev 18
单引号字符串不处理大多数转义序列.所以,当你有这个
'\n'
Run Code Online (Sandbox Code Playgroud)
字面意思是"两个字符串,第一个字符是反斜杠,第二个字符是小写'n'".它并不意味着"换行符".为了\n表示换行符,你必须将它放在双引号字符串中(它确实处理这个转义序列).这里有一些例子:
"Remove \n".delete('\n') # => "Remove \n" # doesn't match
'Remove \n'.delete('\n') # => "Remove \\" # see below
'Remove \n'.delete("\n") # => "Remove \\n" # no newline in source string
"Remove \n".delete("\n") # => "Remove " # properly removed
Run Code Online (Sandbox Code Playgroud)
请注意delete,由于方法中的特殊逻辑,因此忽略了此特定示例中的反斜杠字符(第二行,在调用中使用单引号字符串)delete.有关详细信息,请参阅有关String#count的文档.gsub例如,要绕过它,请使用
'Remove \n'.gsub('\n', '') # => "Remove "
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24303 次 |
| 最近记录: |