[英]Loadash is not validating string Negative values in javascript
我正在研究React Native項目。 我收到服務器的響應,響應如下。
{
"id": 12,
"year": 2019,
"percentage": "-0.45",
}, {
"id": 13,
"year": 2018,
"percentage": "4.45",
},
所以,我必須檢查空或非特定字段,如果它是空的,我必須在UI中將0設置為該標簽。
為此,我使用Loadash庫進行驗證檢查。
value: !isEmpty(get(item, 'percentage').replace('-', '').replace(/[,-]/g, '') ? get(item, 'percentage') : '0')
但是,它沒有驗證字符串中的負值。 有什么建議么?
你在最后關閉括號。 這是錯誤的地方。 把它放在這里,就在之前?
:
value: !isEmpty(get(item, 'percentage').replace('-', '').replace(/[,-]/g, '')) ? get(item, 'percentage') : '0'
長行總是難以閱讀和調試,因此請嘗試分解代碼。
let percentage = get(item, 'percentage'),
p = percentage.replace(/[,-]/g, '');
value : !isEmpty(p) ? p : 0;
如果你這樣做了,你會注意到你的錯誤是:
value : !isEmpty(p ? p : 0);
JavaScript區分大小寫。 因此將percentage
更改為Percentage
:
value: !isEmpty(get(item, 'Percentage').replace('-', '').replace(/[,-]/g, '') ?
get(item, 'Percentage') : '0')
有兩種方法可以做到這一點,(第一種可能在React Native中不起作用)將標記的默認值保持為0,因此無論何時在dom或JSON本身中收到一些空字符串,它都會處理問題。 正如我所說,React並不支持它。
第2位。 在前端綁定之前檢查。 一種。 檢查單個鍵的值是空的還是NA或未定義,然后將其設置為0(根據需要)。 對於一個實例,如果它為空,則使用bind函數設置為0或使用此函數設置變量。 這是一個無關緊要的方法。
在ES6中使用_.get
_.get的優點是,如果存在屬性,則省略繼續檢查,這是必要的。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.