【问题标题】:Replace ' character by " using regex expression使用正则表达式替换 ' 字符
【发布时间】:2018-03-14 20:20:24
【问题描述】:

我得到一个字符串:“{ a: '123', b: '234'}”,我想把它变成“{“a”:“123”,“b”:“234”}”通过使用正则表达式。谁能解释/指导我该怎么做?以下是我的试用。

str.replace(/[']/,'"').replace(/(['"])?([a-z0-9A-Z_\-]+)(['"])?\s*:/g, '"$2":')

【问题讨论】:

  • 您是否遗漏了“b”后的冒号,或者您希望对其进行解析?
  • 是的,我实际上想要解析它。谢谢你的提醒,我会编辑我的问题
  • "...使用正则表达式。" 为什么?如果可用,其他选项会起作用吗?
  • 你从哪里得到这个字符串?来源可信吗?
  • 没有。这只是一个错误的输入。

标签: javascript regex replace


【解决方案1】:

只需使用JSON.parse。这就是它的目的。

【讨论】:

  • 但是"{ a: '123', b: '234'}" 不是有效的 JSON
  • 我实际上希望 JSON 成为 {"a":, "123", "b": "234"}。我不明白为什么这个话题被否决了。
  • @Tellui 你刚刚在a: 后面加了一个逗号。这是故意的吗?由于您的(可能)拼写错误,很难理解您在追求什么:错误 JSON 的解析器还是普通的 JSON 解析器?
  • 好的。让我通过编辑让这些更清楚:)。
【解决方案2】:

试试这个代码:

var yourjson = "{ a: '123', b: '234'}";
var jsontemp = yourjson.replace((/([\w]+)(:)/g), "\"$1\"$2");
var correctjson = jsontemp.replace((/'/g), "\"");
alert(correctjson);

jsfiddle

【讨论】:

    猜你喜欢
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    相关资源
    最近更新 更多