反応ネイティブのアプリに数値型の入力フィールドがあります。
このフィールドはコンマ番号のみを受け入れる必要があります。
だから私は使用しました:
keyboardType="numeric"
ただし、この場合でもポイント、スペース、ライン (-) などの文字を使用できます。間違った数値データを入力する際のエラーに加えて。
正しい形式は次のとおりです。nnn,ddd
手伝って頂けますか?
let a = [
"0",//0
"0,5",//0,5
"0,,5",//0,5
"0.5",//0,5
"0..5",//0,5
".0.5",//0,5
",0,5",//0,5
"0.-5,",//0,5
"0,-5.",//0,5
"0,5-..",//0,5
"0,,,- 5,,",//0,5
"0...5- ",//0,5,
"0,5,"//0.5,
];
a.map(el=> {
const e = el
.replaceAll('.', ',')
.replace(/[^0-9,]/g, '')
console.log(e)
});
編集:
let a = [
"0",//0
"0,5",//0,5
"0,,5",//0,5
"0.5",//0,5
"0..5",//0,5
".0.5",//0,5
",0,5",//0,5
"0.-5,",//0,5
"0,-5.",//0,5
"0,5-..",//0,5
"0,,,- 5,,",//0,5
"0...5- ",//0,5,
"00,5",//0,5
"00,05",//0,05
"05,512",//5,51
"00,5123",//0,51
",05",//0,05
"00,,5",//0,5
"21,"//21
];
- "00,5",//0,5 "00,05",//0,05 のように、先行ゼロを 2 つ使用することはできません。
- 最初にコンマを付けずに数字が続く場合は、先頭にゼロがあってはなりません: "05,512"//5,51
- カンマの後には 2 桁の数字のみが必要です "00,5123"//0,51
- 最後に、このケースは無視してもいいと思います。フィールドが空の場合はコンマまたはポイントが入力され、最初にゼロが入力され、その後にコンマが続きます: ",05",//0,05