从javascript中的字符串中提取对象

Ham*_*mad 0 javascript regex string

我将此文本作为 JavaScript 中的字符串:

'ConversationMessage.edit({"conversation_message_id":1901,"conversation_id":154,"resource_id":112,"message":"Great :)","sent_datetime":"2017-05-22T10:04:16.583Z","message_type":0,"display_name":"Hammad Rasheed","resource_image":"http://whuntulocal.s3.amazonaws.com/1492584389-Shot.png","messageattachment_id":null,"message_id":null,"directory_name":null,"filename":null})'
Run Code Online (Sandbox Code Playgroud)

我想从中提取对象。意思是我想提取作为参数传递的内容ConversationMessage.edit()

我已经尝试过JSON.parse(),但失败了。我尝试str.split()拆分“)”和“(”字符,但这也不起作用,因为对象中的消息属性也可以包含“)”字符串,因为它当前包含“Great :)”。

以下是提取该字符串的 HTML 源代码:

<span class="message-date text-navy"><i class="fa fa-pencil text-success cursor-pointer message-edit-pencil" onclick="ConversationMessage.edit({&quot;conversation_message_id&quot;:1901,&quot;conversation_id&quot;:154,&quot;resource_id&quot;:112,&quot;message&quot;:&quot;Great {{{{{{{&quot;,&quot;sent_datetime&quot;:&quot;2017-05-22T10:04:16.583Z&quot;,&quot;message_type&quot;:0,&quot;display_name&quot;:&quot;Hammad Rasheed&quot;,&quot;resource_image&quot;:&quot;http://whuntulocal.s3.amazonaws.com/1492584389-Shot.png&quot;,&quot;messageattachment_id&quot;:null,&quot;message_id&quot;:null,&quot;directory_name&quot;:null,&quot;filename&quot;:null})"></i> Monday, 22 May 2017, 15:04 </span>
Run Code Online (Sandbox Code Playgroud)

Ale*_* 42 7

您可以获取从第一个字符开始到该字符加一{结束的字符串的子字符串,即}

var a = 'ConversationMessage.edit({"conversation_message_id":1901,"conversation_id":154,"resource_id":112,"message":"Great :)","sent_datetime":"2017-05-22T10:04:16.583Z","message_type":0,"display_name":"Hammad Rasheed","resource_image":"http://whuntulocal.s3.amazonaws.com/1492584389-Shot.png","messageattachment_id":null,"message_id":null,"directory_name":null,"filename":null})'
console.log(JSON.parse(a.substring(a.indexOf('{'), a.lastIndexOf('}') + 1)));
Run Code Online (Sandbox Code Playgroud)