【问题标题】:Want to remove curly bracers from a string [duplicate]想要从字符串中删除花括号[重复]
【发布时间】:2012-05-29 02:58:41
【问题描述】:

我在网站上进行了搜索,但仍然无法正常工作。

var blah2 = JSON.stringify({foo: 123, bar: <x><y></y></x>, baz: 123});

这是我尝试过的:

blah2.replace(/[{}]/g, "");

这就是字符串的结果:

got "{\"baz\":123,\"foo\":123}"

(我知道这可能是一个新手问题,但这是我第一次使用 javascript,我只是不知道我缺少什么)

【问题讨论】:

  • 为什么要删除{}
  • 因为我要用逗号分割它所以它变成一个数组,所以当我对它进行排序时,我不想根据{和}对其进行排序
  • 愚蠢的问题,但你为什么要尝试从 JSON 表达式中删除花括号?
  • JSON.stringify({foo: 123, bar: &lt;x&gt;&lt;y&gt;&lt;/y&gt;&lt;/x&gt;, baz: 123}); 导致错误顺便说一句,您确定代码正确吗?
  • 应该是bar: "&lt;x&gt;&lt;y&gt;&lt;/y&gt;&lt;/x&gt;"

标签: javascript json


【解决方案1】:

Javascript 字符串是不可变的。当您调用blah2.replace 时,您并没有替换blah2 中的内容,而是创建了一个新字符串。你可能想要的是:

blah2 = blah2.replace(/[{}]/g, '');

【讨论】:

  • 我会投票给你,但不会让我投票。特维姆!!!试图修复 Firefox 中的错误,让我发疯。泰。我会在 10 分钟内接受答案
  • 不客气,很高兴我能帮上忙。
【解决方案2】:

因为我要用逗号分割它,所以它变成了 数组,所以当我对它进行排序时,我不想根据 { 和 }

zi42 已经给你正确答案了。

但是由于您已经按照上面引用的方式编写,看起来您真正想要的是对数据进行排序并将其拆分为数组;在这种情况下,在逗号等处解析/拆分它是一个很长的路要走。这是另一种思考方式:

var data = {foo: 123, bar: <x><y></y></x>, baz: 123};
var key;
var dataSorted = []; // Create an empty array

for (key in data) {  // Iterate through each key of the JSON data
  dataSorted.push(key);
}

dataSorted.sort();

现在您已经对数据进行了排序。当你想使用它时,你可以这样使用它:

for (var i = 0; i < dataSorted.length; i++) {
  var key = dataSorted[i];
  // Now you do whatever you need with sorted data. eg:
  console.log("Key is: " + key + ", value is: " + data[key]);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-12
    • 1970-01-01
    • 2012-09-26
    • 2013-08-12
    • 2021-11-01
    • 2012-03-16
    • 2019-09-12
    相关资源
    最近更新 更多