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({"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})"></i> Monday, 22 May 2017, 15:04 </span>
Run Code Online (Sandbox Code Playgroud)
您可以获取从第一个字符开始到该字符加一{结束的字符串的子字符串,即}
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)