簡體   English   中英

是的 - 逗號小數分隔符而不是點

[英]Yup - comma decimal separator instead of dot

我正在使用像這樣的簡單Yup模式來驗證 React Native 中的 Formik 輸入字段:

Yup.number().positive()

我的用戶將使用逗號分隔小數,因此我需要架構為1.35之類的值拋出錯誤並接受1,35之類的值。 由於matches方法僅適用於字符串,因此似乎無法使用正則表達式。

在修改了一些transform之后,這最終對我有用:

Yup.number()
   .transform((_, value) => {
      if (value.includes('.')) {
        return null;
      }
      return +value.replace(/,/, '.');
    })
    .positive(),

我不知道 Yup 中的 function 能夠解析不同格式的數字。 但是一種簡單的方法是將逗號轉換/替換為空,使其變為數字

number().transform((o, v) => parseInt(v.replace(/,/g, '')))

這樣你的數字10,000就變成了10000並且確實是一個有效的數字。

另一方面10.000停留10.000並且無效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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