如何在javascript中使用常规表达式从错误代码中获取id

时间:2017-05-31 23:44:57

标签: javascript regex

"{"error":"Couldn't find api::with 'id'=d00c19d1-fd80-4edd-a2f4-a93d967939c6 [WHERE \"uploads\".\"entity_id\" = ?]"}"

我想得到' d00c19d1-fd80-4edd-a2f4-a93d967939c'使用String.match()。不知道javasript是如何工作的。

1 个答案:

答案 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'));