【问题标题】:Substring from string and convert to json object in node js来自字符串的子字符串并在节点 js 中转换为 json 对象
【发布时间】:2017-08-31 08:59:31
【问题描述】:

我有一个类似

的字符串

这个 {manish } {abc} {123 } 是我的字符串 CopyResult={ Region : us-west-2, AmiId : ami-0f60f66f},{ Region : us-west-1, AmiId : ami-2884de48},马尼什·库马尔

我想得到像

这样的子字符串
{ Region : us-west-2, AmiId : ami-0f60f66f},{ Region : us-west-1, AmiId : ami-2884de48}

得到之后,我想将该字符串转换为 JSON。

我正在尝试类似的代码

 var pt = /CopyResult=.*/;
 var copyAmisResult = copyAmilog.match(pt);
 console.log("copyAmilog -- " + copyAmisResult);

输出

CopyResult={ Region : us-west-2, AmiId : ami-0f60f66f},{ Region : us-west-1, AmiId : ami-2884de48},

有人可以建议我修改后的正则表达式,以便我可以得到我的输出。

PS:- 我需要从字符串的开头删除CopyResult=,从字符串的最后一个删除,,它还可以有多个{}。之后有一种更简单的方法可以将该字符串转换为 JSON 对象。 JSON.parse() 有用吗?

【问题讨论】:

  • 我不擅长正则表达式,但 JSON.parse() 一旦你得到字符串JSON.parse('[' + '{"one": 1}, {"two": 2}, {"three": 3}' + ']'); 就会很有用,只是注意到你的变量名和值没有用引号括起来,需要做那也是..
  • 你应该告诉你的服务器返回正确的 JSON 而不是做这个黑客工作。
  • @JosephtheDreamer 在我的情况下很难获得 JSON 结果。所以我没有选择。
  • 为什么不赞成请你解释一下,以便我改进问题
  • .replace 大链很丑,可能太脆弱,但这里有一个例子jsfiddle.net/sgL1fmsL(使用 Ratan 的正则表达式 -- ty!)

标签: javascript json node.js regex


【解决方案1】:

你可以使用这个正则表达式来获取你想要的子字符串,但我不知道如何将它转换为一个对象

var str = "This {manish } {abc} {123 } is my stringCopyResult={ Region : us-west-2, AmiId : ami-0f60f66f},{ Region : us-west-1, AmiId : ami-2884de48}, manish kumar";
console.log( str.match(/=\s*({.*})/)[1]);

【讨论】:

  • 如果有多个 {} 怎么办?我已经更新了我的问题。
  • str.match(/stringCopyResult={.*}/)[0].slice("stringCopyResult=".length) 你可以用这个对吗?
  • 我已经更新了它以匹配它之前的“=”,但如果有“={”你不想抓住它,它就会失败。您应该准确指定要捕获的方式以获得正确的正则表达式。
【解决方案2】:

你可以得到如下数据。

var copyAmilog = 'This {manish } {abc} {123 } is my stringCopyResult={ Region : us-west-2, AmiId : ami-0f60f66f},{ Region : us-west-1, AmiId : ami-2884de48}, manish kumar'
var pt = /stringCopyResult=(.*),/;
var copyAmisResult = copyAmilog.match(pt);
console.log("copyAmilog -- " , copyAmisResult[1]);

【讨论】:

    猜你喜欢
    • 2016-02-02
    • 1970-01-01
    • 2023-04-07
    • 2015-08-10
    • 2018-05-03
    • 1970-01-01
    • 2019-12-17
    • 2014-11-28
    相关资源
    最近更新 更多