javascript怎么去掉字符串首尾的双引号
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript怎么去掉字符串首尾的双引号相关的知识,希望对你有一定的参考价值。
比如字符串是这样的, var a = ""news":["b":"b1","c":"c1"]";注意 我是从服务端ajax响应回来的数据,像这样的数据怎么去掉头尾的双引号呢,在线等答案
参考技术A首先这个字符串有问题。
应该是
'"news":["b":"b1","c":"c1"]'或者是"'news':['b':'b1','c':'c1']"
解析 JSON.parse('"news":["b":"b1","c":"c1"]')或者JSON.parse("'news':['b':'b1','c':'c1']")
摆脱数组内的双引号而不将数组转换为字符串[关闭]
【中文标题】摆脱数组内的双引号而不将数组转换为字符串[关闭]【英文标题】:Getting rid of double quotes inside array without turing array into a string [closed] 【发布时间】:2014-01-17 00:45:11 【问题描述】:我有一个数组
x=[“1”、“2”、“3”、“:*”、“:+”、“4”、“5”、“:-”、“:/”]
我试图去掉数组中的双引号。
我知道我可以使用:
x.to_s.gsub('"','')
它会输出一个字符串:
"[1, 2, 3, :*, :+, 4, 5, :-, :/]"
我想要的输出是一个数组而不是一个字符串:
[1, 2, 3, :*, :+, 4, 5, :-, :/]
有没有办法让我摆脱数组中每个元素的双引号,但仍将我的数组保留为数组?
提前致谢!
【问题讨论】:
你应该说你想将x
的每个元素替换为对应的整数或符号(或类似的),而不是你想“摆脱双引号”,这并没有有道理。此外,虽然您显示了您不想要的输出,但您没有显示您想要的结果。您应该这样做(通过编辑您的答案,而不是通过添加 cmets)。一旦你在 SO 呆了一段时间,你就会掌握它的窍门。
感谢您的建议。这是我的第一篇文章。我编辑了我的问题,现在包含了我想要的输出。感谢您帮助我!
【参考方案1】:
eval x.to_s.gsub('"', '')
# => [1, 2, 3, :*, :+, 4, 5, :-, :/]
【讨论】:
+1 我稍微喜欢@Darren 的回答,但你是第一个建议使用(可怕的)eval
的人,这显然是要走的路。【参考方案2】:
这是您可以做到的一种方法:
x=["1", "2", "3", ":*", ":+", "4", "5", ":-", ":/"]
=> ["1", "2", "3", ":*", ":+", "4", "5", ":-", ":/"]
x.map|n|eval n
=> [1, 2, 3, :*, :+, 4, 5, :-, :/]
重要提示:如果您从不受信任的来源(例如用户输入)接受未经过滤的输入,eval
方法是不安全的。如果您正在制作自己的字符串数组,那么eval
很好。
【讨论】:
我也喜欢这个解决方案。谢谢!【参考方案3】:x = ["1", "2", "3", ":*", ":+", "4", "5", ":-", ":/"]
x.map |e| e[0] == ':' ? e[1..-1].to_sym : e.to_i
或
x.map |e| (e =~ /^\d+$/) ? e.to_i : e[1..-1].to_sym
# => [1, 2, 3, :*, :+, 4, 5, :-, :/]
这当然只适用于x
的元素是带引号的整数和符号(我更喜欢使用eval
)。
【讨论】:
以上是关于javascript怎么去掉字符串首尾的双引号的主要内容,如果未能解决你的问题,请参考以下文章