簡體   English   中英

Loadash未在javascript中驗證字符串負值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM