"{"error":"Couldn't find api::with 'id'=d00c19d1-fd80-4edd-a2f4-a93d967939c6 [WHERE \"uploads\".\"entity_id\" = ?]"}"
我想得到' d00c19d1-fd80-4edd-a2f4-a93d967939c'使用String.match()。不知道javasript是如何工作的。
答案 0 :(得分:3)
这种方法使用一个简单的正则表达式来搜索0-9,a-f和破折号。它可能更具限制性,但由于它不是验证而是提取id,这很好。
// jsonMsg is a JSON encoded string
var jsonMsg = "{\"error\":\"Couldn't find api::with 'id'=d00c19d1-fd80-4edd-a2f4-a93d967939c6 [WHERE \\\"uploads\\\".\\\"entity_id\\\" = ?]\"}";
// Use a regex on jsonMsg
console.log(jsonMsg.replace(/^.*'id'=([a-f0-9-]{36}).*$/,'$1'));
// Parse jsonMsg into an object
var obj = JSON.parse(jsonMsg);
// Use a regex on the error message in the object
console.log(obj.error.replace(/^.*'id'=([a-f0-9-]{36}).*$/,'$1'));