[英]How to convert floating point decimal separator from dot to comma in Javascript
[英]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.