我有一個無效的 JSON 字串作為輸入,它具有這種結構:
{
"Seq_N":66,
"Uptime":728,
"Hum":33,500000,
"Temp (C)":20,129999
}
我無法訪問生成無效 JSON 字串的代碼,因此我無法在生成字串之前對其進行修復
為了使 JSON 字串有效,我需要將 Hum 和 Temp 欄位中的逗號字符替換為點字符,但我還需要保留 JSON 字串的逗號分隔符(為了不破壞 JSON 語法)
有誰知道一個干凈的函式/正則運算式來做到這一點?
提前致謝
uj5u.com熱心網友回復:
負前瞻可以完成這項作業。
const foo = '{ "Seq_N":66, "Uptime":728, "Hum":33,500000, "Temp (C)":20,129999 }';
const cleanedFoo = foo.replace(/,(?![" ])/g, ".");
console.log(JSON.parse(cleanedFoo));
正則運算式意味著:
,匹配逗號,
(?!只有當它沒有被遵循
[" ]通過雙引號或空格。(是的,這個所謂的 JSON 格式嚴重不正確)。
uj5u.com熱心網友回復:
您可以像這樣使用正則運算式,但在創建 json 之前編輯值不是更好嗎?
var json = `{
"Seq_N":66,
"Uptime":728,
"Hum":33,500000,
"Temp (C)":20,129999
}`;
json = json.replace(/("(Hum|Temp \(C\))":\d ),/g, '$1.');
console.log(json)
uj5u.com熱心網友回復:
如果我正確理解了這個問題,下面的代碼應該可以完成這項作業:
$(".stat-item").each(function () {
var inner_context = $(this).text();
$(this).text(inner_context.replace(/[\.] /g, ","));
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/490834.html
標籤:javascript json 正则表达式 代替
下一篇:如何實作陣列中步驟的默認值
